2015-08-18 8 views
5

Cercando di usare Inline per ottenere una vista personalizzata su Admin Dashboard. Di seguito è riportato il codiceMediaDefiningClass L'oggetto non è iterable?

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) 

L'errore che sto ottenendo è TypeError: 'MediaDefiningClass' object is not iterable

Qual è il problema nel mio codice?

+1

A quale riga si verifica l'errore? Si prega di inviare il traceback. – saulspatz

+0

Stai usando un campo ORM personalizzato, come JSONField, BTW? –

risposta

0

a volte la causa di questo errore era l'invio di argomenti alla funzione di registro nell'ordine errato.

Verificare l'ordine di registrazione di un ModelAdmin: è prima la classe del modello, quindi la classe ModelAdmin.

Esempio: admin.site.register (Modello, ModelAdmin)

suppongo naturalmente il secondo deve essere il ModelAdmin dal registro (MyModel) funziona pure.

Problemi correlati