2015-08-18 4 views
5

Пытается использовать Inlines, чтобы получить индивидуальный вид на панели управления администратора. Ниже приведен кодMediaDefiningClass Объект не повторяется?

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

Что проблема в моем коде?

+1

В какой строке возникает ошибка? Пожалуйста, разместите трассировку. – saulspatz

+0

Вы используете какое-то пользовательское поле ORM, например JSONField, BTW? –

ответ

0

Иногда причиной этой ошибки была отправка аргументов в функцию регистра в неправильном порядке.

Проверьте порядок регистрации ModelAdmin: сначала это класс модели, затем класс ModelAdmin.

Пример: admin.site.register (Модель, ModelAdmin)

Я полагаю, естественно, второй должен быть ModelAdmin, поскольку регистр (MyModel) работает, как хорошо.

Смежные вопросы