Модель формы не сохраняет поле ManytoMany

Вот мой код. Я использую Modelforms и библиотеку Crispy forms для создания формы. Когда я нажимаю кнопку отправки формы, все сохраняется, кроме Category(manytomanyfield), которую я должен указать вручную из панели администратора.

NOTE: I FOUND SOME SOLUTIONS ONLINE to do form.save_m2m() but I get Object has no attribute save_m2m()

моя модельформ.

from django.forms import ModelForm
from .models import Article


class ArticleForm (ModelForm):
  class Meta:
    model = Article
    fields = '__all__'
    exclude = ('user',)

мои взгляды.

def create(request):

if request.method =="POST":
    form = ArticleForm(request.POST, request.FILES)
    if form.is_valid():
        form = form.save(commit=False)
        form.user = request.user
        
        return redirect('home')

form = ArticleForm()
context = {'form': form}

return render(request, 'article_form.html', context)

мой шаблон.

<form action="" enctype="multipart/form-data" method="post">
            {% csrf_token %}
            {{form|crispy}}
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>

Вы перезаписываете form:

Код должен быть следующим:

if form.is_valid():
    #form.save() returns a model instance, not another form
    article = form.save(commit=False) 
    article.user = request.user
    article.save()
    form.save_m2m()
...
Вернуться на верх