Python Erreur: nom de "admin" n'est pas défini
Je suis entrain de créer une application en Python dans Django pour la première fois. Je sais que je dois décommentez les outils d'administration dans le urls.py, je l'ai fait. J'ai également ajouté autodiscover
. Chaque fois que j'essaie d'ajouter une nouvelle fonctionnalité pour le panneau d'administration, j'ai cette erreur:
"NameError: name 'admin' n'est pas défini"
Ici c'est le code que j'utilise dans mon modèle à ajouter au panneau d'administration:
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]
voici le code en python terminal, je suis en utilisant
admin.site.register(Poll, PollAdmin)
et voici le code de mon 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)),
)
Quelqu'un a une idée de pourquoi il ne peut pas trouver l'admin nom?
MODIFIER
Voici mon fichier de modèle:
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)
est 'django.contrib.admin' dans votre INSTALLED_APPS?
oui, il est. J'ai déjà ajouté un "Sondages" pour le panneau d'admin, en utilisant cette même méthode. Maintenant, il ne fonctionne pas
oui, il est. J'ai déjà ajouté un "Sondages" pour le panneau d'admin, en utilisant cette même méthode. Maintenant, il ne fonctionne pas
OriginalL'auteur Ty Bailey | 2012-09-07
Vous devez vous connecter pour publier un commentaire.
from django.config import admin
devrait êtrefrom django.contrib import admin
OriginalL'auteur Burhan Khalid
en haut de votre
**url.py**
fichier, ajoutez le code suivantDonc ce bloc devrait ressembler à quelque chose comme ce qui suit
OriginalL'auteur Ronny Mabuza
Bien après une longue agonisante quête pour résoudre ce problème stupide, je me suis FINALEMENT tombé sur la réponse! Un autre Django programmeur a couru dans le même problème et trouvé ceci:
DANS LE PARENT DE ChoiceInLine (qui, vous allez voir que 'admin.StackedInline " dans le tutoriel), LE L StackedInline ne DOIT PAS ÊTRE CAPITALISÉS ... C'est aussi simple que ça ... merci beaucoup Karen Tracey ...
http://grokbase.com/p/gg/django-users/133v4wx0sx/django-1-5-tutorial-error-module-has-no-attribute-stackedinline
StackedInline
semble être capitalisés correctement à la question.OriginalL'auteur Josh
- je changer mon urls.py c'est comme ça... ce doit être le format de base
OriginalL'auteur Tamojit Mondal
Je soupçonne que vous n'avez pas
from django.contrib import admin
dans le fichier de votre modèle où vous avez définiModelAdmin
classes,class ChoiceInline(admin.StackedInline):
.OriginalL'auteur Rohan
Vous devez placer l'admin code (tout ce qui est après #COMMENTÉ JUSQU'à ce que j'ai CORRIGÉ L'ADMIN NOM) admin.py
OriginalL'auteur Marat