我正在尝试将关系插入到Task
模型中定义的多对多表中。当我尝试add()
关系时,我收到Queryset has no attribute user_task
的错误。插入这种关系需要做什么?
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 :(得分:0)
下面:
task = Task.objects.filter(id=request.POST['id'])
这是一个查询集。然而,您只能在对象(而不是查询集)上引用foreignkey / m2m字段
您可以这样做:
for t in task:
t.user_task.add(request.user)
另外,我会检查request.user.is_authenticated()
或添加装饰器@login_required
以确保它按预期工作。