Не передается параметр в форму django

views.py

def create_topic(request):
    if request.method == 'POST':
        form = CreateTopic(request.POST)
        if form.is_valid():
            form.save(commit=False)
            form.topics_id = Topics.objects.get(slug=request.session['topics_slug'])
            print(Topics.objects.get(slug=request.session['topics_slug']))
            form.save()
        else:
            messages.error(request, 'Ошибка валидации')
    else:
        form = CreateTopic()
    return render(request, 'forum/create_topic.html', {"form": form})

models.py (topic)

class Topic(models.Model):
    title = models.CharField(max_length=40, verbose_name='Наименование')
    slug = models.SlugField(max_length=255, null=True, unique=True, db_index=True, verbose_name='URL')
    content = models.TextField(blank=True, verbose_name='Контент')
    create_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата публикации') # При создании модели, добавляется дата
    updated_at = models.DateTimeField(auto_now=True, verbose_name='Обновлено') # При обновлении поля перезаписывается дата
    topics = models.ForeignKey('Topics', on_delete=models.CASCADE, verbose_name='Темы', related_name='get_topics') # null говорит о том что мы можем хранить пустые данные
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Пользователь', related_name='get_user') # null говорит о том что мы можем хранить пустые данные
    views = models.IntegerField(default=0)
    likes = models.IntegerField(default=0)

models.py (Topics)

class Topics(models.Model):
    title = models.CharField(max_length=50, db_index=True, verbose_name='Категории')
    slug = models.SlugField(max_length=255, null=True, unique=True, db_index=True, verbose_name='URL')
    section = models.ForeignKey('Section', on_delete=models.CASCADE, verbose_name='Категории', related_name='get_sections')

forms.py

class CreateTopic(forms.ModelForm):
    class Meta:
        model = Topic
        fields = ['title', 'content']
        widgets = {
            'title': forms.TextInput(attrs={"class": 'form-control'}),
            'content': forms.Textarea(attrs={"class": 'form-control', 'rows': 5}),
        }

Я сделал ровно так, как было показано на других форумах, подставив свои значения, но ничего не вышло, все равно пишет (1048, "Column 'topics_id' cannot be null")

Вернуться на верх