Python 非空约束失败:新建\u PFNews\u PFNews.Auther\u id
我研究了大量关于堆栈溢出的问题,但没有一个解决方案对我有帮助。我尝试了null=True和blank=True以及default=None,它们都给出了错误。有人有什么想法吗?非常感谢!我得到的错误是: 1-当我从(前端)创建新帖子时,它会给出空帖子(没有标题、内容和作者) 2-当我从后端创建时,它工作正常。 3-当我试图删除null=True或blank=True或两者中的任何一个时,会出现以下错误: 非空约束失败:新建\u PFNews\u PFNews.Auther\u id 型号.pyPython 非空约束失败:新建\u PFNews\u PFNews.Auther\u id,python,python-3.x,django-3.0,Python,Python 3.x,Django 3.0,我研究了大量关于堆栈溢出的问题,但没有一个解决方案对我有帮助。我尝试了null=True和blank=True以及default=None,它们都给出了错误。有人有什么想法吗?非常感谢!我得到的错误是: 1-当我从(前端)创建新帖子时,它会给出空帖子(没有标题、内容和作者) 2-当我从后端创建时,它工作正常。 3-当我试图删除null=True或blank=True或两者中的任何一个时,会出现以下错误: 非空约束失败:新建\u PFNews\u PFNews.Auther\u id 型号.py
class PFNews (models.Model):
Title = models.CharField(max_length=200)
Content = models.TextField()
Post_Date = models.DateTimeField(default=timezone.now)
Post_Update = models.DateTimeField(auto_now=True)
Auther = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.Title
def get_absolute_url(self):
# return '/detail/{}'.format(self.pk)
return reverse('pfnewsdetails', args=[self.pk])
class Meta:
ordering = ('-Post_Date',)
class PostCreateView(LoginRequiredMixin, CreateView):
model = PFNews
# fields = ['title', 'content']
template_name = 'PFNews/new_post.html'
form_class = PostCreateForm
def form_valid(self, form_class):
form_class.instance.author = self.request.user
return super().form_valid(form_class)
urlpatterns = [
path('', home, name='home'),
path('about/', aboutus, name='about'),
path('newsdetail/<int:pfnews_id>/', pfnews_detail, name='pfnewsdetails'),
path('new_post/', PostCreateView.as_view(), name='new_post'),
path('detail/<slug:pk>/update/', PostUpdateView.as_view(), name='post-update'),
path('detail/<slug:pk>/delete/', PostDeleteView.as_view(), name='post-delete'),]
视图.py
class PFNews (models.Model):
Title = models.CharField(max_length=200)
Content = models.TextField()
Post_Date = models.DateTimeField(default=timezone.now)
Post_Update = models.DateTimeField(auto_now=True)
Auther = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.Title
def get_absolute_url(self):
# return '/detail/{}'.format(self.pk)
return reverse('pfnewsdetails', args=[self.pk])
class Meta:
ordering = ('-Post_Date',)
class PostCreateView(LoginRequiredMixin, CreateView):
model = PFNews
# fields = ['title', 'content']
template_name = 'PFNews/new_post.html'
form_class = PostCreateForm
def form_valid(self, form_class):
form_class.instance.author = self.request.user
return super().form_valid(form_class)
urlpatterns = [
path('', home, name='home'),
path('about/', aboutus, name='about'),
path('newsdetail/<int:pfnews_id>/', pfnews_detail, name='pfnewsdetails'),
path('new_post/', PostCreateView.as_view(), name='new_post'),
path('detail/<slug:pk>/update/', PostUpdateView.as_view(), name='post-update'),
path('detail/<slug:pk>/delete/', PostDeleteView.as_view(), name='post-delete'),]
url.py
class PFNews (models.Model):
Title = models.CharField(max_length=200)
Content = models.TextField()
Post_Date = models.DateTimeField(default=timezone.now)
Post_Update = models.DateTimeField(auto_now=True)
Auther = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.Title
def get_absolute_url(self):
# return '/detail/{}'.format(self.pk)
return reverse('pfnewsdetails', args=[self.pk])
class Meta:
ordering = ('-Post_Date',)
class PostCreateView(LoginRequiredMixin, CreateView):
model = PFNews
# fields = ['title', 'content']
template_name = 'PFNews/new_post.html'
form_class = PostCreateForm
def form_valid(self, form_class):
form_class.instance.author = self.request.user
return super().form_valid(form_class)
urlpatterns = [
path('', home, name='home'),
path('about/', aboutus, name='about'),
path('newsdetail/<int:pfnews_id>/', pfnews_detail, name='pfnewsdetails'),
path('new_post/', PostCreateView.as_view(), name='new_post'),
path('detail/<slug:pk>/update/', PostUpdateView.as_view(), name='post-update'),
path('detail/<slug:pk>/delete/', PostDeleteView.as_view(), name='post-delete'),]
urlpatterns=[
路径(“”,home,name='home'),
路径('about/',aboutus,name='about'),
路径('newsdail/',pfnews_detail,name='pfnewsdails'),
路径('new_post/',PostCreateView.as_view(),name='new_post'),
路径('detail//update/',PostUpdateView.as_view(),name='post-update'),
路径('detail//delete/',PostDeleteView.as_view(),name='post-delete'),]
在views.py中
form_class.instance.author=self.request.user
在您的models.py中没有小写的实例作者。。。现在检查拼写,了解makemigrations运行良好的问题,但migrate未运行,并给出了相同的错误,通过删除数据库并重新创建新数据库解决了此问题。。但它是创建空帖子(没有标题,没有内容,没有作者)