【发布时间】:2011-06-02 10:42:31
【问题描述】:
我从现有的遗留数据库中创建了两个模型,一个用于文章,一个用于可以与文章关联的标签:
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'
我想从管理界面为文章添加标签,所以我的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)
界面看起来不错,但是当我尝试保存时,我得到:
Warning at /admin/webserver/article/382/
Field 'tag_id' doesn't have a default value
【问题讨论】:
-
你为什么在
model_id字段中使用AutoFields,它们是由django自动创建并设置为主键的。 -
@dcrodjer - 我使用的是旧版数据库
-
您是否进行了任何模型/数据库表更改(在同步数据库之后)并且没有同步它们?看here
-
@dcrodjer - 这是否意味着这是一个 django 错误?看起来很奇怪
-
为什么你说 django bug!!我在问你是否重置表和同步数据库
标签: django django-admin autofield