15

初めてDjangoでPythonアプリケーションを作成しています。urls.pyの管理ツールのコメントを解除する必要があることはわかっています。私も追加しましautodiscoverた。管理パネルに新しい機能を追加しようとすると、次のエラーが発生します。

"NameError:name'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)
4

7 に答える 7

10

from django.config import adminする必要がありますfrom django.contrib import admin

于 2012-09-07T04:52:10.833 に答える
1

このばかげた問題を解決するための長く苦しい探求の末、ついに答えにたどり着きました! 別の Django プログラマーが同じ問題に遭遇し、次のことを発見しました。

ChoiceInLine の親 (チュートリアルでは「admin.StackedInline」と表示されます) では、StackedInline の L を大文字にすることはできません ... それと同じくらい簡単です ... どうもありがとう Karen Tracey ...

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

于 2013-08-01T00:07:13.957 に答える
0

クラスfrom django.contrib import adminを定義したモデルファイルに、がないのではないかと思います。ModelAdminclass ChoiceInline(admin.StackedInline):

于 2012-09-07T03:59:56.427 に答える
0

管理コード (#COMMENTED OUT UNTIL I FIX THE ADMIN NAME の後のすべて) を admin.py に配置する必要があります。

于 2012-09-07T04:47:29.880 に答える