{% get_related_entries weblog.entry 5 from object.categories as
related_entries %}
{% for entry in related_entries %}
<p><a href="{{ entry.get_absolute_url }}">{{ entry.title }}</a>
{% endfor %}
class RelatedEntryNode(template.Node):
def __init__(self, model, number, categories, varname):
self.model = model
self.number = int(number)
self.categories = template.Variable(categories)
self.varname = varname
> Ok, so this means that:
> self.model is a string; literally, in your example, "weblog.entry"
No, self.model shouldn't be a string. It should be the model for Entry in
app weblog (and I use it like that in other custom template tags that work)
The templatetag is used when on a blog entry detail page and should give
a list of related entries (with corresponding categories) . It comes from
django.db.models.get_model() (p117 of Practical Django Projects)
>But that's fine, because your render() method is going to compute some
>value, probably a list of Entry instances in this case, and then it will
>create a new context variable, with the statement;
>context[self.related_entries] = <my_previously_computed_list>
This is where the problem is. I don't get a computed list. It returns
nothing instead of 1 other related blogentry (in this case)
I'm really stuck now in solving this quite common query:
* a blog entry is shown in a detail page
* this blog entry has categories (m2m relation) Let's assume categories C1
and C2
* other blog entries have the same categories (also C1 and C2, I'll skip the
OR relation for now)
* through a custom template tag I want to get the list of Entry instances
that have categories C1 AND/OR C2 and display them on the detailpage.
* Three database tables are involved in this query
** weblog_entry (which contains the entries)
** category_entry (which contains the categories)
** weblog_entry_categories (which joins the entry with the category)
When displaying the blog entry, Django also references these 3 tables
(otherwise I wouldn't get the category name in the template.)
I'm going around in circles and am afraid I don't see where the problem
could be. I reread the books, went through the documentation and searched
the internet, but am getting nowhere. I'm sure I'm overcomplicating things
as this should be a quite easy common query to perform.
Maybe you could give a hint or a pointer how you would achieve this thorugh
a template tag?
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/django-users/-/VSgdCU_fo5cJ.
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.