2 votes

Pourquoi l'ajout d'un modèle de base casse-t-il mes formulaires django ?

Je crée un site web avec django et le framework rest et je me suis retrouvé à copier et coller beaucoup du même code sur chaque page. J'ai appris à créer un base.html et en ajoutant {% extends 'app/base.html' %} de http://tutorial.djangogirls.org/en/template_extending/ . Cela a très bien fonctionné pour la plupart de mes pages mais j'ai des problèmes avec 2 pages qui ont des formulaires différents (mais j'obtiens la même erreur pour tous les formulaires). L'erreur est la suivante :

TemplateSyntaxError at /boards/ : Filtre invalide : 'attr'

erreur lors du rendu du modèle dans le modèle boards.html, erreur à la ligne 30

Je suis confus parce que lorsque je me débarrasse de l'élément {% extends 'app/base.html' %} et copier l'en-tête de base.html dans cette autre page, cela fonctionne bien. Les en-têtes des 2 sont identiques mais quelque chose dans les formulaires se casse lorsque j'essaie d'utiliser le modèle de base. Il y a beaucoup de code à inclure donc je ne vais pas l'inclure à moins qu'on me le demande. Je ne sais pas si c'est le cas, mais j'espère que quelqu'un aura une idée de ce qui peut se passer sans voir mon code.

Je pense qu'il peut être utile de préciser que j'utilise django-widget-tweaks avec mes formulaires. Je ne sais pas si cela est lié au problème.

2voto

Catherine Points 136

Il s'avère que le problème vient en fait de django-widget-tweaks ! J'avais {% load i18n widget_tweaks %} uniquement en base.html mais j'ai également dû l'ajouter aux pages individuelles (je ne sais toujours pas pourquoi, mais cela a fonctionné). Ainsi, chaque modèle qui étend base.html et qui comporte un formulaire :

{% extends 'app/base.html' %}
{% load i18n widget_tweaks %}
{% block content %}
    ....
{% endblock %}

Apparemment, le simple fait de charger des modifications de widgets dans la base ne suffit pas, voir les commentaires pour savoir pourquoi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X