在管理中我想使用内联元素。我要分类展示 它相关的项目。
但是我得到这个错误:
Exception at /admin/store/category/7/
<class 'store.models.Item'> has no ForeignKey to
<class 'store.models.Category'>
这是真的,当然,因为我选择使用类别来指向 它有的元素。 但是,我怎样才能让管理员列出内联的所有项目 给定的Category有? 我该如何解决这个错误?
背景:
class Category:
items=models.ManyToManyField(Item,through='Categoryhasitem')'
class Categoryhasitem(models.Model):
category = models.ForeignKey(Category, db_column='category')
item = models.ForeignKey(Item, db_column='item')
class Item(models.Model):
id = models.AutoField(primary_key=True)
这是我的 admin.py 文件。
class ItemInline(admin.TabularInline):
model=Item
class CategoryAdmin(admin.ModelAdmin):
inlines=[ItemInline,]
class ItemAdmin(admin.ModelAdmin):
pass
admin.site.register(Category, CategoryAdmin)
admin.site.register(Item, ItemAdmin)
请您参考如下方法:
使用内联显示多对多关系的语法略有不同。
class ItemInline(admin.TabularInline):
model = Category.items.through
class CategoryAdmin(admin.ModelAdmin):
inlines = [
ItemInline,
]
exclude = ('items',)
请参阅 working with many-to-many models 的 django 管理文档了解更多详情。
