2014-08-28 68 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