Создание объекта с полем 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 я понять не могу. Взываю о помощи!


Ответы (0 шт):