将内联模型添加到Django管理站点

val*_*tev 2 python django foreign-keys django-admin

我有两个模型:

class Rule(models.Model):
    name = models.CharField(max_length=200)

class Channel(models.Model):

    id = models.CharField(max_length=9, primary_key=True)
    name = models.CharField(max_length=100)
    rule = models.ForeignKey(Rule, related_name='channels', blank=True)
Run Code Online (Sandbox Code Playgroud)

而且我必须能够在RuleAdmin界面内的管理站点中添加规则通道。因此,我创建了这两个管理员模型:

class ChannelAdmin(admin.TabularInline):
    model = Channel

class RuleAdmin(admin.ModelAdmin):
    model = Rule
    inlines = [ChannelAdmin]
Run Code Online (Sandbox Code Playgroud)

但是,当我启动服务器时,出现以下错误:

ERRORS:
<class 'main.admin.ChannelAdmin'>: (admin.E202) 'main.Channel' has no ForeignKey to 'main.Channel'.
Run Code Online (Sandbox Code Playgroud)

仍然在django shell中,我可以像这样进行查询

rule = Rule.objects.get(pk=1)
rule.channels.all()
Run Code Online (Sandbox Code Playgroud)

总有一些明显的东西,但我只是想不通。

bak*_*rin 5

做这样的事情:

class ChannelAdmin(admin.TabularInline):
    model = Channel

class RuleAdmin(admin.ModelAdmin):
   inlines = [ChannelAdmin,]

admin.site.register(Rule,RuleAdmin)
Run Code Online (Sandbox Code Playgroud)