On Wed, May 14, 2008 at 6:33 PM, John <[EMAIL PROTECTED]> wrote:
>
> I'm having trouble accessing dictionary elements within a nested for
> loop. here are some code snippets:
>
> [...]
>
> # so far so good, but then I try to iterate over the documents and
> their associated tags in a template
> # here is the template with the html stripped out for readability
> {% for document in documents %}
> {{ document.content }}
> {% for doctag in tag_dict[document.uid] %} {{ doctag.tagid }} {%
> endfor % }
> {% endfor %}
>
> # document.content is fine, but when I try to access tag_dict within
> the template's for loop, it complains:
> TemplateSyntaxError: Could not parse the remainder: [document.uid]
right, templates are not python :) you can't do that, and it's on
purpose: that kind of fiddling around with the model is best done in
the view, not in the template.
So... instead of doing e.g.
documents = Document.objects.all()
tag_dict = {}
for document in documents:
tag_dict[document.uid] = DocumentTag.objects.filter(docid=document.uid)
and passing those two into the template, you could do something along
the lines of
documents = [dict(object=document,
tags=DocumentTag.objects.filter(docid=document.uid))
for document in Document.objects.all()]
and then in the template, you do
{% for document in documents %}
{{ document.object.content }}
{% for doctag in document.tags %} {{ doctag.tagid }} {% endfor %}
{% endfor %}
this is assuming there is some reason for you not to modify the
Document class to give it the appropriate methods or attributes to
access the related DocumentTag directly; if you could do that, life
would be much easier :)
--
John Lenton ([EMAIL PROTECTED]) -- Random fortune:
The trouble with a lot of self-made men is that they worship their creator.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---