django管理员发出警告“字段'X'没有默认值”

ola*_*ndo 6 django autofield django-admin

我从现有的旧版数据库中创建了两个模型,一个用于文章,一个用于可以与文章关联的标签:

class Article(models.Model):
    article_id = models.AutoField(primary_key=True)
    text = models.CharField(max_length=400)
    class Meta:
        db_table = u'articles'
class Tag(models.Model):
    tag_id = models.AutoField(primary_key=True)
    tag = models.CharField(max_length=20)
    article=models.ForeignKey(Article)
    class Meta:
        db_table = u'article_tags'
Run Code Online (Sandbox Code Playgroud)

我想启用从管理界面为文章添加标签的功能,因此我的admin.py文件如下所示:

from models import Article,Tag
from django.contrib import admin
class TagInline(admin.StackedInline):
    model = Tag


class ArticleAdmin(admin.ModelAdmin):

    inlines = [TagInline]

admin.site.register(Article,ArticleAdmin)
Run Code Online (Sandbox Code Playgroud)

界面看起来不错,但是当我尝试保存时,得到: Warning at /admin/webserver/article/382/ Field 'tag_id' doesn't have a default value

Dav*_*rse 5

如果您的数据库中有一个不允许使用NULL的废弃字段,也会发生这种情况。


ola*_*ndo 3

问题是在数据库中,tag_id没有设置为自动增量字段。