Создание объекта с полем Many to many через CreateView django
У меня есть модель Post, в которой есть поле с Many To many связью с моделью Category
class Post(models.Model):
author = models.ForeignKey(to='Author',
on_delete=models.CASCADE,
related_name='allnews')
type = models.CharField(max_length=3,
choices=POST_TYPES, )
date_time = models.DateTimeField(auto_now_add=True)
category = models.ManyToManyField(to='Category',
through='PostCategory',
related_name='allnews')
header = models.TextField()
text = models.TextField()
rating = models.IntegerField(default=0)
class Category(models.Model):
title = models.CharField(max_length=255, unique=True)
class CategoryUser(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
Есть также форма для создания нового объекта модели Post и ее отображение через дженерик CreateView
forms.py
class NewsForm(ModelForm):
class Meta:
model = Post
fields = ['author', 'category', 'header', 'text', ]
views.py
class NewsCreate(PermissionRequiredMixin, CreateView):
template_name = 'news_create.html'
form_class = NewsForm
permission_required = 'news.add_post'
Вопрос состоит в следующем: когда я пытаюсь создать объект Post, в него не добавляется категория. Я понимаю причину, т.к. при добавлении через shell это делается в две итерации: создается объект post (create) и потом добавляется category (add). Но как это сделать через CreateView я понять не могу. Взываю о помощи!