参考链接:
解决方案
我最后发现,我是因为在 form.save()
方法中,为了先获得对象,添加部分属性后再自己手动 save()
,所以带了参数 commit=False
。结果自己 save()
后,对象的多对多关系没有保存下来。
解决方法一:
先创建base实例,再实例化form表单,然后直接调用form的save方法,就可以存储完整的对象(包括多对多关系)。
task_base = Task(task_user=request.user, task_plan_time=timezone.now())
task_form = forms.TaskForm(request.POST,instance=task_base)
task_form.save()
解决方法二:
如果要使用 commit=False
参数,在save
后,手动调用save_m2m
方法绑定多对多关系。
task = task_form.save(commit