Hi guys, i would like to make a django custom tag for display 10 entry title from the category where the user is reading a article... but how ill do?, i need to send the category from the actual entry...
Any idea?
Thanks
Hi guys, i would like to make a django custom tag for display 10 entry title from the category where the user is reading a article... but how ill do?, i need to send the category from the actual entry...
Any idea?
Thanks
Why a custom tag? It's probably better, cleaner, to add a method to the article model, and call that from the template. Depending on your model, the method would be practically trivial.
Check here for making custom tags:
http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#howto-custom-template-tags
You would need to pass the relevant category object to the template context.
The best way to do this would be with an inclusion tag. This is a tag that renders a template fragment which renders the 10 related articles.
You just pass in the current article into the tag, and return the context for the template fragment - ie the related articles.
@register.inclusion_tag('related_articles.html')
def related_articles(article, count):
category = article.category
articles = category.article_set.exclude(id=article.id)[:count]
return {'articles': articles}
You'll need a related_articles.html file in your templates directory which outputs the articles. Then, to call it from your main template, you would just do
{% related_articles article 10 %}
where article
is the name of the article object.