2014-08-28 70 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']) 

这是一个查询集。然而,你只能引用的对象的外键/ M2M领域,(而不是查询集)

你可以做这样的事情:

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

另外,我想检查是否request.user.is_authenticated()或装饰@login_required增加确保它按预期工作。

+0

谢谢,我会这么做的。 – 2014-08-28 19:48:49