it-swarm.com.ru

Python Ошибка: имя 'admin' не определено

Я впервые создаю приложение Python в Django. Я знаю, что я должен раскомментировать инструменты администратора в urls.py, я сделал это. Я также добавил autodiscover. Каждый раз, когда я пытаюсь добавить новую функцию в панель администратора, я получаю эту ошибку:

"NameError: имя 'admin' не определено"

Вот код, который я использую в своей модели для добавления в панель администратора:

class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

    class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]

вот код в терминале python, который я использую

admin.site.register(Poll, PollAdmin)

и вот код из моего urls.py:

from Django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from Django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'iFriends.views.home', name='home'),
    # url(r'^iFriends/', include('iFriends.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('Django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
    )

У кого-нибудь есть идеи, почему он не может найти имя администратора?

РЕДАКТИРОВАТЬ

Вот весь мой файл модели:

from Django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return self.question
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

    class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField()
    def __unicode__(self):
        return self.choice_text


#COMMENTED OUT UNTIL I FIX THE ADMIN NAME
from Django.config import admin

class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

    class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]

#ADD THIS TO THE MAIN PYTHON FUNCTION
admin.site.register(Poll, PollAdmin)
12
Ty Bailey

from Django.config import admin должен быть from Django.contrib import admin

10
Burhan Khalid

в верхней части файла **url.py** добавьте следующий код

from Django.contrib import admin
admin.autodiscover()

Так что этот конкретный блок должен выглядеть примерно так


from Django.conf.urls import patterns, include, url
**from Django.contrib import admin
admin.autodiscover()**

# Uncomment the next two lines to enable the admin:
# from Django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'examplesite.views.home', name='home'),
    # url(r'^examplesite/', include('examplesite.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    #url(r'^admin/doc/', include('Django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
**url(r'^admin/', include(admin.site.urls)),**

)
5
Ronny Mabuza

я меняю свой urls.py вот так ... это должен быть базовый формат

from Django.conf.urls import  include, url
from Django.contrib import admin

admin.autodiscover()
urlpatterns = [
     url(r'^admin/', include(admin.site.urls)),
    ]
1
Tamojit Mondal

После долгих мучительных попыток решить эту дурацкую проблему я наконец-то нашел ответ! Другой программист Django столкнулся с той же проблемой и обнаружил следующее:

В PARENT OF ChoiceInLine (который вы увидите как "admin.StackedInline" в учебном пособии), L IN StackedInline НЕ ДОЛЖЕН КАПИТАЛИЗОВАТЬСЯ ... Это так просто ... thankyou SO много Карен Трейси ...

http://grokbase.com/p/gg/Django-users/133v4wx0sx/Django-1-5-tutorial-error-module-has-no-attribute-stackedinline

1
Josh

Вы должны поместить код администратора (все после #COMMENTED OUT, пока я не исправлю имя администратора) в admin.py

0
Marat

Я подозреваю, что у вас нет from Django.contrib import admin в файле модели, где вы определили классы ModelAdmin, class ChoiceInline(admin.StackedInline):.

0
Rohan