NOT NULL constraint failed: spring_post.publisher_id
Я создал представление создания базы класса. Когда я пытаюсь представить представление создания модели поста, оно возвращается. NOT NULL constraint failed: spring_post.publisher_id. Как я могу установить издателя, чтобы получить текущего зарегистрированного пользователя и установить его в поле piblisher поста. я новичок это поле publisher в моей модели post
publisher=models.ForeignKey(User,on_delete=models.PROTECT)
#and this is my views
class PostCreateView(LoginRequiredMixin,CreateView):
model=Post
fields=['title','description']
redirect_field_name="login"
Вам нужно установить .publisher пост, так:
class PostCreateView(LoginRequiredMixin,CreateView):
model=Post
fields = ['title','description']
redirect_field_name = 'login'
def form_valid(self, form):
form.instance.publisher = self.request.user
return super().form_valid(form)
Вероятно, вам также следует указать success_url [Django-doc], чтобы указать, куда перенаправлять, если POST-запрос был успешным.
Примечание: Обычно лучше использовать
settings.AUTH_USER_MODEL[Django-doc] для ссылки на модель пользователя, чем использоватьUserмодель [Django-doc] напрямую. Для получения дополнительной информации вы можете посмотреть ссылка наUserмодель раздел документации .