2014-08-28 5 views
0

Я пытаюсь вставить отношения во многие таблицы, определенные в моей модели Task. Когда я пытаюсь установить add(), я получаю сообщение об ошибке Queryset has no attribute user_task. Что мне нужно сделать, чтобы вставить эти отношения?Вставка отношения M2M в таблицу

models.py

class Task(models.Model): 
    user_task = models.ManyToManyField(AUTH_USER_MODEL) 

views.py

def create_usertask(request): 
    if request.method == 'POST': 
     task = Task.objects.filter(id=request.POST['id']) 
     task.user_task.add(request.user.id) 
     return HttpResponseRedirect('/tasks/%s' % request.POST['id']) 

ответ

0

Здесь:

task = Task.objects.filter(id=request.POST['id']) 

это QuerySet. Принимая во внимание, вы можете ссылаться на поле ForeignKey/M2M только на объектах, (а не querysets)

Вы можете сделать что-то вроде этого:

for t in task: 
    t.user_task.add(request.user) 

Кроме того, я хотел бы проверить, если request.user.is_authenticated() или добавить декоратор @login_required в убедитесь, что он работает по назначению.

+0

Спасибо, я сделаю это. –

Смежные вопросы