Feed.get_context_data(**kwargs)
There is also a way to pass additional information to title and description templates, if you need to supply more than the two variables mentioned before. You can provide your implementation of get_context_data
method in your Feed
subclass. For example:
from mysite.models import Article from django.contrib.syndication.views import Feed class ArticlesFeed(Feed): title = "My articles" description_template = "feeds/articles.html" def items(self): return Article.objects.order_by('-pub_date')[:5] def get_context_data(self, **kwargs): context = super(ArticlesFeed, self).get_context_data(**kwargs) context['foo'] = 'bar' return context
And the template:
Something about {{ foo }}: {{ obj.description }}
This method will be called once per each item in the list returned by items()
with the following keyword arguments:
-
item
: the current item. For backward compatibility reasons, the name of this context variable is{{ obj }}
. -
obj
: the object returned byget_object()
. By default this is not exposed to the templates to avoid confusion with{{ obj }}
(see above), but you can use it in your implementation ofget_context_data()
. -
site
: current site as described above. -
request
: current request.
The behavior of get_context_data()
mimics that of generic views - you’re supposed to call super()
to retrieve context data from parent class, add your data and return the modified dictionary.
Please login to continue.