Even if there are no if interests|length > 0 I get the extra whitespaces. Sam is correct. I've used Jinja2 before and used the - to remove unnecessary lines. I have lots of templates written for django, so I don't want to retrofit them all. Worse case I could post process the message, but I would love it if django support this feature in its template engine.
On Aug 14, 9:19 am, Python_Junkie <software.buy.des...@gmail.com> wrote: > If you have a solution that is fine. > > But if you did the business logic in the view, there is no need for > > {%- if interests|length > 0 %} and you would simply return your > dictionary values while rendening as a variable that contains actual > values > and no need for the if statement which provides the extra carriage > return > > {% for event, interests in report.items %} > {{event}} > > On Aug 14, 7:28 am, Sam Lai <samuel....@gmail.com> wrote: > > > > > > > > > On 14 August 2011 14:00, Python_Junkie <software.buy.des...@gmail.com> > > wrote: > > > > I think that if you performed the logic to determine if there actually > > > is something in the interest for that row in the view and > > > then only pass those components from the view, and not in the template > > > then your problem goes away. > > > I don't think so, but I haven't tested it. Django's template parser > > does not remove newlines anywhere, even if only a template directive > > exists on that line. For HTML, this isn't an issue. You can try > > sacrificing template readability by putting everything on to one line. > > > There has been a fair bit of discussion about this, but no consensus > > was arrived at. For now, the better solution is to use jinja2 > > (http://jinja.pocoo.org/). Its language is based on Django's, and is > > largely compatible, but it has the added bonus of being able to remove > > newlines like so, > > > {%- if interests|length > 0 %} > > ... > > {%- endif %} > > > Notice the - after the % sign. This tells jinja2 to remove the > > previousnewlinecharacter. You can also add them at the closing % to > > remove the followingnewlinecharacter. > > > It is pretty easy to use with Django (and many people do), and you can > > just use it for this particular template, leaving all others to use > > Django's in-built templating system. > > > > On Aug 13, 8:53 pm,CrabbyPete<pete.do...@gmail.com> wrote: > > >> I'm using the django template system for format a text email. I send > > >> it a dictionary and it formats the output. The problem is that it > > >> inserts lots of newlines > > > >> Here is the template, and reports is a dictionary that contains an > > >> event and a dictionary of interests > > > >> Weekly Contact List For {{date}} > > >> {% for event, interests in report.items %} > > >> {% if interests|length > 0 %} > > >> {{event}} > > >> {% for interest, value in interests.items %} > > >> {{ value }} {% if value == 1 %} lead {% else %} leads {% > > >> endif %} for {{ interest }} > > >> {% endfor %} > > >> {% endif %} > > >> {% endfor %} > > > >> Is there a way for it just to print the lines without adding all the > > >> extra blank lines when interests = 0? > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Django users" group. > > > To post to this group, send email to django-users@googlegroups.com. > > > To unsubscribe from this group, send email to > > > django-users+unsubscr...@googlegroups.com. > > > For more options, visit this group > > > athttp://groups.google.com/group/django-users?hl=en. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.