2008-10-31 28 views
5

Je viens de commencer à jouer avec Django et je suis en train de suivre le tutoriel avec mes propres exigences de base. Les modèles que j'ai esquissés jusqu'à présent sont beaucoup plus complets que le tutoriel, mais ils se compilent bien. Sinon, tout aurait dû être pareil.Pourquoi l'application d'administration de Django 1.0 ne fonctionnera-t-elle pas?

Mon problème est avec l'application d'administration. Je peux connecter à, et afficher les modèles modifiables, mais lorsque je clique sur un modèle ou tout du changement/ajouter des boutons, je reçois un 404.

Ceci est l'erreur exacte que je reçois:

Page not found (404) 
Request Method:  GET 
Request URL: http://localhost:8000/admin/auth/user/add/ 

App u'', model u'auth', not found. 

ce sont les fichiers pertinents et ce qui est en eux:

urls.py

from django.conf.urls.defaults import * 

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

urlpatterns = patterns('', 
# Example: 
# (r'^daso/', include('daso.foo.urls')), 

# Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
# to INSTALLED_APPS to enable admin documentation: 
#(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

# Uncomment the next line to enable the admin: 
    (r'^admin(.*)', admin.site.root) 
) 

admin.py

from daso.clients.models import Person, Client, Contact 
from django.contrib import admin 

admin.site.register(Person) 
admin.site.register(Client) 
admin.site.register(Contact) 

models.py - Je vais juste montrer un modèle

class Client(Person): 
relationships = models.ManyToManyField("Contact", through="Relationship", null=True) 
disabilities = models.ManyToManyField("Disability", related_name="disability", null=True) 
medical_issues = models.ManyToManyField("MedicalIssue", related_name="medical_issue", null=True) 
medicare_num = models.CharField(max_length=15, blank=True) 
insurance = models.OneToOneField("Insurance", null=True, blank=True) 
medications = models.ManyToManyField("Medication", through="Medication_Details", null=True) 

def __unicode__(self): 
    client = u"[Client[id: ", self.id, " name: ", self.first_name, " ", self.last_name, "]" 
    return client 

settings.py

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.admin', 
    'daso.clients', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
) 

Celles-ci devraient être les fichiers pertinents/sections de fichiers. Si quelqu'un a une idée de pourquoi je reçois un 404, s'il vous plaît éclairer moi? Remarque: lorsque vous avez collé ici, les applications installées ont affiché les deux dernières applications au lieu d'être espacées de * 4, et lors du rechargement de la page d'administration, elles ont fonctionné pendant une demi-seconde puis à nouveau 404. Étrange. Des idées? C'est parce que vous avez omis un / dans urls.py.

Répondre

12

Modifiez la ligne d'administration à ce qui suit:

(r'^admin/(.*)', admin.site.root), 

J'ai vérifié sur mon serveur et a obtenu la même erreur avec votre ligne de urls.py.

+0

wow .. merci! Je me sens assez stupide maintenant, bien que l'erreur ne soit pas très utile –

+0

C'est une erreur étrange, qui vaut probablement la peine de signaler un bug. Je ne comprends toujours pas pourquoi cela fonctionnerait pour la plupart des pages, mais en casser quelques unes. Ma conjecture est que cela ne gère pas correctement quelques "répertoires". – tghw

+0

cela fonctionne également lorsque votre administrateur changer le mot de passe et la déconnexion ne prennent pas le chemin absolu et vont à un 404 – Rasiel