无法在 Django 中保存 ManyToMany 字段?

时间:2021-03-30 19:54:43

标签: django django-views django-forms

我有多对多字段,但每次我在表单中保存数据时,除此字段(多对多字段)之外的所有数据都保存

这是我的views.py

@login_required()
def post_update(request,id):
    post = get_object_or_404(Post,id=id)
    form = PostForm(request.POST or None,request.FILES or None,instance=post )
    if request.method == 'POST':
        if form.is_valid():
            instance =form.save(commit=False)
            instance.user = request.user
            instance.save()
            form.save_m2m()
            messages.success(request, "You successfully updated the post")
            return redirect(reverse("home:post",kwargs={"id":post.id}))
    context={"form":form}
    return render(request,"post_update.html",context)

这是错误:

Internal Server Error: /post/update/4/
Traceback (most recent call last):
  File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "G:\Web Development\Back End\JustDjango\Build any blog with Django\Blog\blog\BlogApp\views.py", line 111, in post_update
    form.save_m2m()
  File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\forms\models.py", line 443, in _save_m2m
    f.save_form_data(self.instance, cleaned_data[f.name])
  File "C:\Users\abdal\AppData\Local\Programs\Python\Python38-32\lib\site-packages\taggit\managers.py", line 543, in save_form_data
    getattr(instance, self.name).set(*value)
TypeError: set() argument after * must be an iterable, not NoneType

0 个答案:

没有答案