2014-02-13 1 views
2

Так что я искал Google и не могу найти решение моей проблемы. Я честно очень озадачен, поэтому спасибо, что посмотрели.Мой класс admin.TabularInline возвращает исключение: у объекта нет атрибута 'urls'

MySite/MySite/urls.py:

... 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
         url(r'^admin/', include(admin.site.urls)), 
... 

MySite/upgradelists/admin.py:

from django.contrib import admin 
from upgrademe.models import GPU, CPU 

class CPUAdmin(admin.TabularInline): 
    model = CPU 

admin.site.register(CPU, CPUAdmin) 

возвращается ошибка:

AttributeError at /admin/ 
'CPUAdmin' object has no attribute 'urls' 

Однако, если я изменю admin.py на:

class CPUAdmin(admin.ModelAdmin): 
    model = CPU 

Тогда все хорошо. (хотя, не имеет значения: я считаю, что часть «model = CPU» избыточна?)

Любая помощь/понимание этого было бы весьма полезным. Google оставил меня в тупике, и поиск по StackOverflow оказался ничем, что я вижу, связано.

ответ

1

Вы не можете зарегистрировать табличный класс администратора непосредственно с сайтом администратора. TabularAdmin является подклассом InlineAdmin и как таковой используется только для атрибута inlines полного ModelAdmin.

4

У меня такая же проблема.

Вы можете попробовать это исправить эту проблему:

class CPUInline(admin.TabularInline): 
    model = CPU 

class CPUAdmin(admin.ModelAdmin): 
    inlines = [CPUInline] 

admin.site.register(CPU, CPUAdmin) 
8

У меня была та же проблема, Google привел меня к этой теме, и это не помогло. Я решил это, пока я собирался опубликовать свой вопрос.

Я даже не знаю, если это та же проблема у вас, но здесь это:

class UserAnswerInline(admin.TabularInline): 
    model = UserAnswer 
class UserQuestionAdmin(admin.ModelAdmin): 
    inlines = [UserAnswerInline] 
admin.site.register(UserQuestion, UserAnswerInline) 

Правильный код:

class UserAnswerInline(admin.TabularInline): 
    model = UserAnswer 
class UserQuestionAdmin(admin.ModelAdmin): 
    inlines = [UserAnswerInline] 
admin.site.register(UserQuestion, UserQuestionAdmin) 

Пятно разница? Yup, неправильное имя объекта. Взял меня за 5 часов до того, как я решил создать новый вопрос о SOF, а затем понял это, объяснив мою проблему.

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