Django:InlineModelAdmin引用自己的Model

时间:2010-10-01 11:42:34

标签: django inline admin

所以我正在尝试设置一个条目发布系统,用户可以在创建条目时选择一堆相关条目。如果我可以使用InlineModelAdmin,它会很棒。但它一直想要一个外键,由于某种原因,我无法正确设置。

以下是我的情况的简化设置:

models.py

class Entry(models.Model):
    entry           =   models.ForeignKey('self', related_name='related_entry', null=True, blank=True)
    title           =   models.CharField(max_length=100, verbose_name='title')
    description     =   models.TextField(verbose_name='description')

    def __unicode__(self):
        return self.title

admin.py

class EntryInline(admin.TabularInline):
    model = Entry
    verbose_name = "related entry"

class EntryAdmin(admin.ModelAdmin):
    inlines = [
        EntryInline,
    ]    

admin.site.register(Entry, EntryAdmin)

我遇到的问题是:

  

/ admin / app / entry / add /中的DatabaseError   列app_entry.entry_id没有   存在LINE 1:SELECT“app_entry”。“id”,   “app_entry”。“entry_id”,“......

我仍然只是潜入django的神奇世界,所以如果有人能指出我出错的地方,我将不胜感激!

1 个答案:

答案 0 :(得分:3)

首先,我尝试了你在我的机器中提供的代码(Django 1.2.3,Python 2.6.2,Ubuntu Jaunty),据我所知,它运行良好。

  

用户可以在创建条目时选择一堆相关条目。

如果您希望条目与一堆条目相关,那么您是否应该使用ManyToMany关系?您的代码目前定义了ForeignKey

  

admin.py

     

...

     

admin.site.register(Entry,EntryAdmin)

您的管理员目前已设置为允许用户在同一页面中添加条目以及(可选)一个或多个相关条目(这非常有效)。这是你的期望吗?