在管理员中我想使用内联元素。我想要显示类别 它与之相关的项目。
但是我收到了这个错误:
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)
答案 0 :(得分:1)
使用内联显示多对多关系的语法略有不同。
class ItemInline(admin.TabularInline):
model = Category.items.through
class CategoryAdmin(admin.ModelAdmin):
inlines = [
ItemInline,
]
exclude = ('items',)
有关详细信息,请参阅working with many-to-many models的django管理员文档。