2012-09-07 18 views
11

私はDjangoで初めてPythonアプリケーションを作成しています。私はurls.pyで管理ツールのコメントを解除する必要があることを知っている、私はそれをやった。私もautodiscoverを追加しました。Pythonエラー:名前 'admin'が定義されていません

:ここ

は私がに追加する私のモデルに使用していたコードである「NameError:名 『管理者』が定義されていない」毎回私は管理パネルに新しい機能を追加しようと、私はこのエラーを取得します管理パネル:

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] 

ここでは、私が

admin.site.register(Poll, PollAdmin) 

、ここを使用していますPythonのターミナル内のコードである私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)), 
    ) 

誰もが管理者名を見つけることができない理由を知っていますか?私はあなたがModelAdminクラス、class ChoiceInline(admin.StackedInline):を定義し、あなたのモデルファイルにfrom django.contrib import adminを持っていない疑いがある

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) 
+1

が「ジャンゴである基本フォーマットする必要があります.contrib.admin 'をあなたのINSTALLED_APPSに追加しますか? – Marat

+0

はい、そうです。私は既にこの同じ方法を使って管理パネルに "投票"セクションを追加しました。今はうまくいきません –

答えて

0

EDIT

は、ここに私の全体のモデルファイルです。

+0

はい、私の編集を見てください。 –

0

(私は管理者名を修正するまで#COMMENTED OUT後のすべて)あなたは

8

from django.config import adminをのadmin.pyするために管理者コードを配置する必要があり、以下を追加し、あなたの**url.py**ファイルの先頭にfrom django.contrib import admin

4

する必要がありますコード

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)),** 

) 
1

この愚かな問題を解決するために、長い時間をかけて苦労した後も、私は結局答えを見つけました!別のDjangoプログラマーも同じ問題に遭遇し、これを見つけました:

チョイスインラインの親である(このチュートリアルでは 'admin.StackedInline'と表示されます)、THE L IN StackedInlineは大文字にしてはいけません。そのような単純な...ありがとうそんなにカレン・トレイシー...

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

+0

これは質問に答えますか? 'StackedInline'は質問で正しく大文字になっているようです。 –

1

私はこのように私のurls.pyを変更...これは

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

admin.autodiscover() 
urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    ] 
関連する問題