6

既存のレガシー DB から 2 つのモデルを作成しました。1 つは記事用、もう 1 つは記事に関連付けることができるタグ用です。

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

4

3 に答える 3

5

これは、データベースに NULL を許可しない使用されていないフィールドがある場合にも発生する可能性があります。

于 2012-01-11T15:53:44.067 に答える
3

問題は、DB でtag_id自動インクリメント フィールドとして設定されていなかったことです。

于 2011-01-04T13:12:22.933 に答える