尝试使用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/

10-12 18:26