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

新手上路,请多包涵

我有这两个模型:

 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)

而且我必须能够在 RuleAdmin 界面内的管理站点中添加频道以进行规则。所以我创建了这两个管理模型:

 class ChannelAdmin(admin.TabularInline):
    model = Channel

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

但是当我启动我的服务器时,我得到了这个错误:

 ERRORS:
<class 'main.admin.ChannelAdmin'>: (admin.E202) 'main.Channel' has no ForeignKey to 'main.Channel'.

仍然在 django shell 中,我可以进行如下查询

rule = Rule.objects.get(pk=1)
rule.channels.all()

必须有一些明显的东西,但我无法弄清楚。

原文由 valignatev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答

做这样的事情:

 class ChannelAdmin(admin.TabularInline):
    model = Channel

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

admin.site.register(Rule,RuleAdmin)

原文由 bakarin 发布,翻译遵循 CC BY-SA 3.0 许可协议

在admin.py中添加

from .models import Post, Comment

class CommentInline(admin.StackedInline):
    model = Comment
    extra = 0

class PostAdmin(admin.ModelAdmin):
    inlines = [
        CommentInline,
    ]

admin.site.register(Post, PostAdmin)

点击这个: 结果

原文由 Try2Code 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题