尝试使用Inlines在Admin Dashboard上获取自定义视图。以下是代码
from django.contrib import admin # noqa
from oscar.core.loading import get_model
from oscar.apps.catalogue.admin import *
CategoryAttribute = get_model('catalogue', 'CategoryAttribute')
CategoryAttributeValue = get_model('catalogue', 'CategoryAttributeValue')
Category = get_model('catalogue', 'Category')
class CategoryAttributeInline(admin.TabularInline):
model = CategoryAttributeValue
fk_name = 'category'
extra = 1
class CategoryAdmin(admin.ModelAdmin):
inlines = [CategoryAttributeInline,]
admin.site.register(CategoryAttributeValue)
admin.site.register(CategoryAttribute)
admin.site.register(Category, CategoryAdmin)
我得到的错误是
TypeError: 'MediaDefiningClass' object is not iterable
我的代码中有什么问题?
答案 0 :(得分:1)
有时导致此错误的原因是以错误的顺序向寄存器功能发送参数。
检查注册ModelAdmin的顺序:首先是模型类,然后是ModelAdmin类。
示例:admin.site.register(Model,ModelAdmin)
我认为第二个必须是ModelAdmin,因为寄存器(MyModel)也可以。