Question

I've found a similar question here, but I'm looking for more general solutions.

As it is now, when Django generates anykind of HTML for you (this mainly happens when generating forms), it uses self-closing tags by default i.e. <br /> instead of <br>. <br /> is valid XHTML and I think HTML5 also, but it's not valid HTML4.

Is there any clean way to override this? Or is it better to write django sites in XHTML or HTML5 instead?

Was it helpful?

Solution

There was a whole series of discussions on this when development for 1.2 kicked off, with a range of solutions proposed, but no general way forward was agreed.

But see Simon Willison's Django-HTML project for one possible solution.

OTHER TIPS

You can rewrite entirely the way django output HTML for you. E.G : for the form, you can :

  • choose between output using table, p or li by using the property "as_xxx".
  • print the form label by label, choosing the tag wrappers.
  • use widget to define how a form piece will print to HTML.

Of course you need the new forms to do so, and there for use Django 1.X.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top