首页 > 解决方案 > /admin/main/post/add/ NOT NULL 约束处​​的 IntegrityError 失败:main_post.status

问题描述

如何解决这个问题?这是在我创建新帖子并按下按钮“添加”之后

看起来您的帖子主要是代码;请添加更多细节。为什么stackoverflow会问这个?

#models.py
from django.db import models
from django.contrib.auth.models import User


class Post(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(max_length=255)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    content = models.TextField()
    
    created_on = models.DateTimeField(auto_now_add=True)
    updated_on = models.DateTimeField(auto_now= True)

    def __str__(self):
        return self.title

#admin.py
from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('title',), }

admin.site.register(Post,PostAdmin)

标签: pythondjangoweb

解决方案


也许您忘记使用管理命令,makemigrations并且在从模型中migrate删除status字段之后。Post据我所知,您的模型中没有状态字段,但该字段仍然存在于您的数据库中。因此,请确保使用这些管理命令(makemigrationsmigrate)从数据库中正确删除该字段,或者如果您的数据不重要,您可以执行以下过程:

a- 删除您的数据库并创建一个新的

b- 删除所有迁移文件

c- 运行manage.py makemigrationsmanage.py migrate


推荐阅读