2010-03-07 20 views
3

J'ai trouvé une question similaire here, mais je cherche des solutions plus générales. Comme c'est le cas maintenant, quand Django génère quelque chose de HTML pour vous (cela se produit principalement lors de la génération de formulaires), il utilise des balises à fermeture automatique par défaut, c'est-à-dire <br /> au lieu de <br>. <br /> est XHTML valide et je pense que HTML5 aussi, mais ce n'est pas valide HTML4.Utilisation de HTML 4.01 strict avec Django

Existe-t-il un moyen propre de surcharger cela? Ou est-il préférable d'écrire des sites django en XHTML ou HTML5 à la place?

Répondre

1

Il y avait un whole series of discussions là-dessus lorsque le développement pour 1.2 a débuté, avec une gamme de solutions proposées, mais aucune solution générale n'a été convenue. Mais voyez Django-HTML project de Simon Willison pour une solution possible.

+0

Hmmm ... Merci. Plus je lis à travers la discussion, plus les pièges potentiels que je découvre. Je pourrais coller à XHTML ou HTML5 après tout parce que cela semble l'option beaucoup plus simple. –

1

Vous pouvez réécrire entièrement la façon dont django génère le code HTML pour vous. E.G: pour le formulaire, vous pouvez:

  • choisir entre la sortie utilisant table, p ou li en utilisant la propriété "as_xxx".
  • imprimez le formulaire label by label, en choisissant les enveloppes d'étiquettes.
  • utilisez widget pour définir la manière dont une pièce imprimée sera imprimée au format HTML.

Bien sûr, vous avez besoin des nouveaux formulaires pour le faire, et là pour utiliser Django 1.X.

+0

Merci - cela résout en effet une certaine partie du problème, mais il y a encore d'autres domaines (comme le jeton csrf) que je devrais résoudre séparément * soupir * –

+0

n'est pas un jeton csrf seulement une chaîne vide avant V1. 2? –

+0

Ah, mon erreur, vous parlez probablement de la méthode héritée avec 'django.middleware.csrf.CsrfResponseMiddleware' –