Django admin ManyToMany内联“没有ForeignKey”错误
我正在设置Djangopipe理员以下模型:
class Quote(models.Model): author = models.CharField(max_length=100) quote = models.CharField(max_length=1000) tags = models.ManyToManyField('Tag') class Tag(models.Model): name = models.CharField(max_length=100)
用下面的代码:
class TagInline(admin.TabularInline): model = Tag class QuoteAdmin(admin.ModelAdmin): list_display = ('author', 'quote') inlines = (TagInline,) class TagAdmin(admin.ModelAdmin): pass admin.site.register(Quote, QuoteAdmin) admin.site.register(Tag, TagAdmin)
当试图查看pipe理页面添加一个Quote
,页面显示错误说<class 'quotes.models.Tag'> has no ForeignKey to <class 'quotes.models.Quote'>
。 这在我添加内联之前没有发生。 有什么问题? 如何正确添加Tag
作为内联?
(我花了20分钟寻找一个答案,我发现了类似的问题,但他们的答案都没有为我工作。)
pipe理文档有专门用于内联多对多关系的部分。 您应该使用Quote.tags.through
作为Quote.tags.through
的模型,而不是Tag
本身。