6
votes

Django Admin: ne pas voir une application (problème d'autorisation?)

J'ai un site avec Django en cours d'exécution des applications personnalisées. Je n'utilisais pas l'orme Django, juste la vue et les modèles, mais maintenant je dois maintenant stocker des informations, donc j'ai créé des modèles dans une seule application et activé l'administrateur.

Le problème est quand je me connecte à l'administrateur. Vous n'avez pas la permission de modifier quoi que ce soit », pas même l'application d'authentification de la page. J'utilise le même utilisateur créé avec Syncdb en tant que superutilisateur. P>

dans le même serveur, j'ai un autre site qui utilise l'administrateur juste bien. P>

Utilisation de Django 1.1.0 avec Apache / 2.2.10 Mod_PyTHON / 3.3.1 Python / 2.5.2, avec PSQL (PostgreSQL) 8.1.11 Tout in Gentoo Linux 2.6.23 P>

Des idées où je peux trouver une solution? P >

Merci beaucoup. p>

Mise à jour: cela fonctionne à partir du serveur de développement. Je parie que cela a quelque chose à voir avec une certaine permission du système de fichiers, mais je ne peux tout simplement pas le trouver. P>

update2: fichier de configuration VHOST: p>

urlpatterns = patterns('',
                       (r'^admin/', include(admin.site.urls)),
                      )
urlpatterns += patterns('gpx',
   (r'^$',                         'menues.views.index'),
   (r'^adm/$',                     'menues.views.admIndex'),
  • / var / django / gpx / init strong> .py existe et est vide li>
  • i exécute python manage.py de / var / django / gpx répertoire li>
  • Le site est GPX, l'une des applications est contablie et vit dans / var / django / gpx / contable li>
  • L'utilisateur Apache est le groupe WebDev et tous ces répertoires et fichiers appartiennent à ce groupe et ont une permission RW Li> ul>

    Mise à jour 4: a confirmé que le fichier de paramètres est identique pour Apache et RunServer (renommé IT et Broked) P>

    Mise à jour 5: / var / django / gpx / contabilité / contabilité / init strong> .py existe p>

    Ceci est la partie de pertinence d'URLS.PY: P>

    <Location />
      SetHandler python-program
      PythonHandler django.core.handlers.modpython
      SetEnv DJANGO_SETTINGS_MODULE gpx.settings
      PythonDebug On
      PythonPath "['/var/django'] + sys.path"
    </Location>
    


1 commentaires

Avez-vous essayé d'utiliser le serveur intégré Django I.e. Python Manage.py Runserver ou allez-vous directement à Apache + mod_python


5 Réponses :


2
votes

Assurez-vous d'avoir ajouté votre application à Paramètres.Installed_apps.

Le modèle Django de la page d'index de l'application admin Lit: P>

<Location "/mysite/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonDebug On
</Location>


5 commentaires

Merci pour votre réponse. Toutes les applications sont dans les paramètres, aucune montre. J'ai également vérifié la base de données et l'utilisateur a IS_SuperUser sur.


Ok, les cielopes, vous êtes proche. Lorsque j'exécute le serveur de développement, l'administrateur montre tout. Je ne comprends tout simplement pas. Je faisais de l'édition lourde sur ce site, si le fichier Paramètres.py n'était pas correct, je ne devrais pas pouvoir y travailler. Cependant, lorsque je le vois d'Apache, cela ne fonctionne pas, mais il semble de travailler à partir du serveur de développement.


* /var/django/gpx/__init__.py existe et est vide * i Excuit * i Excourage python manage.py de / var / django / gpx répertoire * Le site est GPX, l'une des applications est contablie et VIVATION IN / VAR / DJANGO / GPX / Contable * L'utilisateur Apache est WebDev Group et tous ces répertoires et fichiers appartiennent à ce groupe et ont la permission RW


/ Var / django / gpx / contable / a son propre __init__.py? Il devrait si vous le créez avec gean.py startApp contable - mais juste vérifier


J'ai complètement manqué d'idées ... Vos URLS.PY ne montrent pas l'administrateur.AutoDiscover (), mais vous avez déjà dit que c'était là. Je ne sais pas quoi penser d'autre à penser ... Si quelque chose vient à moi, je modifierai la réponse.



2
votes

Essayez d'accéder à votre base de données et dans la table Auth_uuser Assurez-vous que le champ IS_STAFF, IS_ACTIVE et IS_SUPERUSER sont marqués comme true (1) pour votre utilisateur.


0 commentaires

12
votes

On dirait que vous n'avez pas enregistré d'applications avec l'administrateur (étape 5 dans Cette vue d'ensemble ).

Essayez d'ajouter la ligne admin.autoDiscover () à vos URLs principales.py, en veillant à faire de django.contribe importation admin premier.

par exemple: xxx

Vous pouvez également enregistrer vos modèles individuellement avec admin.site.register (Yourmodel ) .


3 commentaires

+1 - Si l'autodécover n'était pas terminé, app_list sera vide pour index.html dans admin et vous verrez ce message.


Merci, c'était correct, j'ai eu ces lignes dans Urls.py.


Grand merci. Votre réponse ne couvrait pas mon problème, mais votre code m'a aidé. (J'ai supprimé admin.AutoDiscover () )



0
votes

Nous avons rencontré le même problème lors de l'installation de Django 1.1 sur une ancienne installation de Django 0.96

C'était résolu lorsque nous avons fait une nouvelle installation


0 commentaires

23
votes

Espérons que cela aide quelqu'un, mais nous avons eu ce même problème car quelqu'un a ajouté un backend d'authentification différent aux paramètres.py et n'a pas conservé le modèle de modèle par défaut. Changer le réglage à: XXX

Fixe pour nous.


7 commentaires

M'a aidé à résoudre un problème avec les autorisations de groupe après avoir remplacé le backend. Merci!


Cela a fonctionné pour moi. Merci. Je trouve ça surprenant. Cela me semble tort que les autorisations ne fonctionneraient pas après avoir retiré le modèle de modélisation à partir des retombées d'authentification.


Merci, j'ai aussi trébuché sur ce problème.


C'était le correctif pour moi, les backends personnalisés, puis décidé d'utiliser une partie du site d'administration pour l'administration des utilisateurs. Je cherchais partout dans mon backend et le code administrateur sans trouver une raison pour laquelle mes utilisateurs ne seraient pas en mesure de ne voir aucune option une fois qu'ils leur auront été accordés pour le site d'administration. Le drapeau de superutilisateur a fonctionné, mais je devrais alors mettre trop mal l'application d'administration beaucoup pour le rendre utile pour un utilisateur. - Edit --- Peut-être, il semble que l'utilisateur sans statut superutilisateur puisse faire toutes les tâches superutilisables, quelle que soit l'ensemble des autorisations.


Impressionnant! merci =) il semble un peu bizarre que j'ai besoin de notre backend d'authentification personnalisé et de la Django pour cela pour travailler = S


Pour ceux qui ne veulent pas inclure et le nom d'utilisateur / mot de passe. Il suffit d'hériter du modèle à votre backend personnalisé et vous devriez être prêt à partir.


Merci, avait le même problème!