Django添加书籍时出现NOT NULL约束失败错误求助
解决书籍添加时的NOT NULL约束错误
错误原因:你的Books模型中user字段是必填外键(默认不允许为空),但AddBook视图创建书籍对象时,未将当前登录用户关联到新书籍上,导致数据库约束校验失败。
解决方法:在AddBook视图中重写form_valid方法,手动将当前登录用户赋值给表单对应的书籍实例:
from django.views import generic from django.contrib.auth.mixins import LoginRequiredMixin from .models import Books from .forms import AddBookForm class AddBook(LoginRequiredMixin, generic.CreateView): model = Books form_class = AddBookForm template_name = 'books/add_book.html' def form_valid(self, form): # 将当前登录用户关联到新创建的书籍 form.instance.user = self.request.user # 调用父类方法完成后续保存逻辑 return super().form_valid(form)
额外说明:确保AddBookForm表单中不要包含user字段,该字段由视图自动填充,无需用户在表单中输入。
内容的提问来源于stack exchange,提问作者Hasan MicroB
相关产品推荐
相关产品推荐

