Personnalisé django admin modèles ne fonctionne pas
J'ai essayé d'obtenir des modèles personnalisés pour la page admin de Django de travail, mais ont échoué. J'ai lu la documentation de django et de plusieurs blogs dont l'expliquer comme étant une étape facile, dont j'ai supposé que c'était.
- Vous dès maintenant à la page d'administration fonctionne, mais mon propre réécriture de la CSS et les templates ne fonctionne pas. Ma configuration est comme suit
/project_folder/
manage.py
settings.py
urls.py
__init__.py
/app/
views.py
models.py
__init__.py
/templates/
/admin/
base_site.html
Dans le urls.py j'ai
(r'^admin/', include(admin.site.urls)),
Qui fonctionne, puisque je ne peux pas me connecter etc. Donc je suis en supposant que l' /admin/base_site.html serait de remplacer celui par défaut, mais ce n'est pas faire une chose.
Ce que quelqu'un sait ce qui se passe ici ? Je l'ai suivi depuis le Django tutos/guides et alla sur certains blogs pour voir s'ils avaient des réponses, mais ils ont tous dit la même chose.
Edit 1:
J'ai mon répertoire de modèles de configuration correctement.
TEMPLATE_DIRS = (
os.path.join(PROJECT_PATH, 'templates/'),
)
Cela fonctionne correctement que j'ai le reste de mon site de travail avec un répertoire de médias pour les CSS etc. La seule chose qui ne semblant pas à "accepter" les modèles est la section admin.
- Mais cela ne semble pas comme vous avez le droit chemin d'accès au modèle. Vous avez projet/modèles, mais votre structure montre comme projet/app/modèles.
Vous devez vous connecter pour publier un commentaire.
Bon j'ai corrigé, c'était une erreur stupide, mais j'étais déjà en train de jouer avec cela pour les 2 dernières heures. Je devais déclarer mes application avant de django.contrib.admin. Il ne l'accepta pas autrement.
Encore une faute, que l'on doit renoncer à faire sur cet exercice. L'exercice dit de changer cela...
à cette...
Il y a une tentation de changer seulement la constante de chaîne, mais c'est incorrect. I. e. ne le faites PAS, il ne va pas modifier l'en-tête:
C'est l'erreur que j'ai faite, et j'ai dû passer par l'exercice méticuleusement pour le fixer.
Projects/mysite/templates/admin/base_site.html
droit?site_header|default:...
chose. Mais pourquoi cann-je pas utiliser cette variable de contexte puisque je n'ai pas surdéfini AdminSite Oblect mais le modèle? Sont toutes les variables de départ allé si je remplace un modèle? BTW, je n'ai pas touché le AdminSite objet, mais j'ai utilisé mon personnalisée ModelAdmin classe.Je ne pouvais pas obtenir le modèle d'administrateur pour être reconnu quand vous faites cette étape dans la deuxième partie de l'Django tutoriel.
C'est comment je l'ai résolu:
En utilisant les informations dans cette réponse, j'ai imprimé la valeur de
TEMPLATE_DIRS
:settings.py
fichier existe (pour moi, c'estR:\jeffy\programming\sandbox\python\django\tutorial\mysite\mysite\
)python
>>> import settings
>>> settings.TEMPLATE_DIRS
, sorties['R:\\jeffy\\programming\\sandbox\\python\\django\\tutorial\\mysite\\templates']
Donc, c'est l'emplacement prévu de le répertoire des modèles pour ce projet. Le répertoire admin va dans ce, et les
base_site.html
fichier va dans ce.L'autre problème que j'ai eu est qu'il était de travail, mais j'ai seulement changé la
<TITLE>
champ, si je n'avais pas remarqué. (Je pensais que j'étais en train de changer l'en-tête principal.)mysite
ainsi que mon répertoire appmysite
, alors quand j'ai imprimé TEMPLATE_DIRS et il a donné'/Users/username/dev/code/mysite/templates'
, j'ai lu trop vite et je pensais que j'avais raison mais je n'ai pas les miens ont été dans.../code/mysite/mysite/templates
import settings
n'a pas fonctionné pour moi, maisfrom mysite import settings
fait.Assurez-vous que vous avez défini
TEMPLATE_DIRS
danssettings.py
pour le bon dossier!J'ai eu ce même problème de la marche à travers le Django 1.6.5 tutoriel (https://docs.djangoproject.com/en/1.8/intro/tutorial02/), mais réalisé que c'était une erreur de ne pas le lire attentivement. Le tutoriel est de vous faire est de mettre ceci dans votre settings.py:
J'ai ensuite mis le dossier modèles que je voulais mettre pour remplacer l'administrateur du site en vertu de l'application tout comme dans votre exemple:
Avec ce que cela ne fonctionnerait pas pour la raison similaire à la question vous avait noté par Daniel Roseman, dans un des commentaires, mon
DIR
a été évalué àproject_folder/templates
(comme je l'ai dit il). Puis j'ai remarqué que dans le tuto il dit explicitement mis letemplates/admin
dossier au niveau du projet, pas de niveau application:En faisant cela, je présente la structure suivante:
Avec cela, le tout a fonctionné comme prévu (j'ai pu remplacer la valeur par défaut de django modèles pour les pages d'administration).
Alors que vous devriez être en mesure de mettre les modèles n'importe où et configurer Django pour les trouver, il semble judicieux de mettre vos principaux modèles d'administration au niveau du projet, comme l'administrateur du site n'est pas d'application spécifique, mais disponible pour l'ensemble du projet.