Не передается параметр в форму 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")