python - 在 Django 框架中使用组件
问题描述
我正在努力在 Django 中使用组件。
我的项目:我正在开发一个展示当前博客文章的博客。在侧边栏中,我想包含一个组件,其中列出了十个最新帖子和十个相关帖子。这些组件中的每一个不仅是模板,而且还包含逻辑(我宁愿不使用模板标签将其包含在模板中)。
包含此类组件的最佳方法是什么?
解决方案
如果您使用 Django 的基于类DetailView
来显示您的博客文章,您可以添加额外的信息以在您的模板中使用get_context_data()
,例如:
class BlogPostDetailView(DetailView):
model = BlogPost
def get_context_data(self, **kwargs):
context = super(BlogPostDetailView, self).get_context_data(**kwargs)
context['recent_posts'] = BlogPost.objects.filter(...)
context['related_posts'] = BlogPost.objects.filter(...)
return context
然后,您可以在模板中使用此信息,如下所示:
{% for related_post in related_posts %}
...
{% endfor %}
如果您在多个页面上需要此信息,您可以考虑通过上下文处理器添加它们。
推荐阅读
- python - 根据条件修改具有来自另一个数据帧的单个值的大型 pyspark 数据帧的最佳实践
- javascript - 使用 jQuery 在 WooCommerce 上增加/减少数量
- outlook - 共享收件箱中的 Outlook 加载项 REST API 失败:ErrorInvalidMailboxItemId - 项目 ID 不属于当前邮箱
- java - 如何在 JDI(Java 调试接口)中放置非阻塞断点?
- azure-cosmosdb - Gremlin 查询 cosmosDB 以查找连接
- javascript - 用户如何用按钮打破 JS 循环
- bash - 改进`jq | @base64` 速度
- c# - .NET Core - 如何使配置选项可用于引用库中的代码
- python - 如何使用python创建条形码并将png文件存储在s3中而不保存在本地
- node.js - 在 Raspberry Pi 上恢复互联网连接后,Firestore 侦听器无法正常工作