尝试使用Inlines在Admin Dashboard上获取自定义 View 。下面是代码
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
我的代码有什么问题?
最佳答案
有时,导致此错误的原因是将参数以错误的顺序发送到寄存器函数。
检查注册ModelAdmin的顺序:首先是模型类,然后是ModelAdmin类。
示例:admin.site.register(Model,ModelAdmin)
我自然认为第二个必须是ModelAdmin,因为register(MyModel)也可以工作。
关于python - MediaDefiningClass对象不是可迭代的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32077679/