J'ai le modèle suivant dans Cependant, pour une raison quelconque, il jette un p> modèle / admin / changements_form.html code>:
6 Réponses :
Vous êtes dans Vous vous attendez probablement à ce que vous remplissez si vous remplacez le modèle de l'application Admin, vous pouvez étendre celui que vous remplacez. Mais ce n'est pas comme ça que ça marche. Lorsque vous remplacez un modèle, vous ne pouvez pas y accéder. P>
solution à votre problème est de copier le modèle d'origine et de changer de choses que vous n'aimez pas. P> admin / change_form.html code> et vous étendez
admin / change_form.html code>. Vous ne pouvez pas étendre le même modèle que vous êtes dans. P>
En outre, vous pouvez pointer votre Quelque chose comme: P> Classe CODE> Classe sur un autre modèle à l'aide de la propriété
Changlate_Form_Template CODE>.
{% extends "admin/change_form.html" %}
J'ai eu le même problème. Résolu en plaçant le modèle remplacé sous MyApp / Modèles / Admin / MyApp au lieu de MyApp / Modèles / Admin. P>
Bien que la réponse acceptée fonctionne, il est un peu lourd à mon avis. C'est une meilleure réponse car, comme disent les documents, "il n'est généralement ni nécessaire ni conseillé de remplacer une gabarit entière".
avec Django Core, c'est impossible. Mais ce n'est pas impossible. P>
Copier et coller "le modèle d'origine et changez de choses que vous n'aimez pas" c'est très laid. p>
Cette solution est à tout modèle: p>
Vous devez corriger Django lorsque vous utilisez Debug = True. Ce n'est pas aussi joli.
Je dois corriger Django quand debug = faux. Si vous ne souhaitez pas utiliser Smart-Extends, et que vous voulez un correctif, vous pouvez voir cette requête de traction: github.com/django/django/pull/217
Je sais que c'est tard, mais ...
Si s'étend - qui est une option bien meilleure que de dupliquer - la clé est de le faire appeler tout (Bien que l'OP a été mentionné sur Il sera utilisé automatiquement sur une base per-applications si elle est nommée Il sera utilisé automatiquement sur une base par modèle si nommé enfin, si insiste sur le nommer /admin/change_form.html code>. p>
Modèle / admin / Change_Form.html code>, c'est simplement parce qu'un chemin dans sa template_dirs Toile se termine dans '/ Modèle' - Mine se termine généralement dans ' / Modèles '- mais ces répertoires peuvent être nommés n'importe quoi et se trouvant n'importe où.) p>
/
/ admin /
/admin/change_form.html code>, vous Can - à condition que l'étiquette code> code> contient le chemin complet de votre installation Django au lieu d'un relatif. p> p>
C'est une bonne réponse. Merci beaucoup.
La meilleure façon de faire cela que j'ai trouvé est d'utiliser Comme les modèles Django sont dans quelque chose comme '..' .. ' code> Pour accomplir quelques répertoires, puis remonter dans des annuaires qui ne devraient être trouvés que dans le code Django base.
"django / contrib / admin / admin / admin" code>, j'ai trouvé que cela m'a travaillé: p>
{% extends "../../../../django/contrib/admin/templates/admin/change_form.html" %}
Je note que vous pouvez prolonger Change_form à ce niveau? N'a-t-il pas obligé d'être par application / modèle par exemple Modèle / admin / CMS / POST / CHANGE_FORM.HTML
@Jameso: la documentation spécifie le contraire