我正在尝试访问由修改后的“get_context_data”函数返回的上下文字典,LatestVideosFeed
因此我可以在尝试制作的“新闻提要”中使用它,因为返回的上下文包含视频的作者. 我一直在关注这些文档https://docs.djangoproject.com/en/2.2/ref/contrib/syndication/我无法弄清楚如何访问从get_context_data(self, item, **kwargs):
它返回的上下文字典以及何时在返回之前的调试打印它返回一个字典,其中最后一个条目是上传视频的用户。print(context['author'])
每次与提要交互时,调试打印都会按预期返回。
提要.py
class LatestVideosFeed(Feed):
link = '/video-feeds/'
description = 'New Video Posts'
def items(self):
return VideoPost.objects.all()
def get_context_data(self, item, **kwargs):
context = super().get_context_data(**kwargs)
context['author'] = item.author
print(context['author'])
return context
def item_title(self, item):
return item.title
def item_description(self, item):
return item.description
def item_link(self, item):
return reverse('video_post', args=[item.pk])
视图.py
def video_list(request):
feeds = feedparser.parse('http://localhost:8000/profs/video-feeds')
return render(request, 'vids/video_list.html', {'feeds': feeds})
模板
{% for thing in feeds.entries %}
<h1>Author</h1><br>
{{thing.author}} <-- Nothing is printed here
<h1>Title</h1>
{{thing.title}}<br>
<h1>Description</h1>
{{thing.summary}}<br>
<h1>Video Link</h1>
<a href="{{thing.link}}">{{thing.title}}</a><br>
{% endfor %}