所以问题是我不能从表单中保存ManyToManyField。
这是我的表单: forms.py
class addGoods(forms.Form):
...
permission = form['permission'],
...我的模型: models.py
class Add_good(models.Model):
...
permission = models.ManyToManyField(Permission, related_name="+")
...在我看来,如果请求方法等于"POST",我会尝试将这些数据保存到我的模型中: views.py
if request.method == "POST":
form = addGoods(request.POST)
if form.is_valid():
form = form.cleaned_data
newGood = Add_good(permission = form['permission'])我尝试过这样做(见下文),但也有错误: views.py
if request.method == "POST":
form = addGoods(request.POST)
if form.is_valid():
form = form.cleaned_data
newGood = Add_good(permission = form['permission'])
to_do_list = newGood.save(commit=False)
for permis in form['permission']:
to_do_list.permission.add(permis)
to_do_list.save()
newGood.save_m2m()和我的回溯回溯:
Exception Type: TypeError at /goods/add
Exception Value: 'permission' is an invalid keyword argument for this function如你所见,permission出了点问题,我无法保存它
发布于 2016-07-26 19:53:08
问题出在这里:newGood = Add_good(permission = form['permission'])
权限是ManyToMany字段,因此您的表没有直接具有permision字段,因此它不能接受该参数。您可以创建模型条目,然后添加权限:
newGood = Add_good.objects.create(...)
newGood.permission.add(Permissions.objects.get(...))此外,您的表单不会像刚才那样从权限创建模型,因此您需要在视图中进行手动查询,而不是在permission = form['permission']循环中使用/。
https://stackoverflow.com/questions/38588878
复制相似问题