我有一些部分模板,我将它们加载到各个页面上,有时这些部分的包含是动态的,它们有自己的相关模型。
目前我通过视图将模型传递到主页,但是没有办法为这些独立于父页面和视图的部分加载数据吗?
好像我在不正确的视图中复制代码!
我可以不创建自定义标签或允许我将数据加载到部分中的东西,而不管父页面及其视图中传递的数据如何?
一个很好的例子是“最新帖子”的部分,它存在于侧边栏部分并加载到许多不同的父模板上
干杯凯文
自定义模板标签可以为您做到这一点。您可以编写一个包含标签,它将直接输出渲染的模板:
# yourapp/templatetags/appname_tags.py
def latest_posts(num_posts):
posts = Post.objects.all()[:num_posts]
return {'posts': posts}
register.inclusion_tag('yourapp/partials/latest_posts.html')(latest_posts)