gpt4 book ai didi

python - 在 Django 模板语言中包含标签——我可以向它传递什么?

转载 作者:行者123 更新时间:2023-12-01 04:48:32 25 4
gpt4 key购买 nike

好吧,这可能有一个“简单”的解决方案,但我是一个初学者,对我来说没有什么是简单的。

我有一个 View 和一个模板,用于显示我建模的 Car 类实例的属性。该 Car 类与我的自定义 User 类具有多对多关系。显示给定 Car 实例的属性的模板有许多变量。每辆车的 View 效果都很好。以下是我无法开始工作的情况:

我为每个用户实例都有一个用户个人资料页面。从该页面,我想显示特定用户“最喜欢”的每辆车的属性。我不知道如何做到这一点。

我尝试使用 {% include %} 标签来包含汽车模板的片段,然后使用 for 语句来迭代用户最喜欢的集合。理论上,这将在用户页面中填充他们“喜欢”的每辆车并显示其属性。但是,我不知道如何将 {% include %} 标记传递到正确的上下文,以便为 Car 的每个实例正确填充属性。这可能吗?

是否有一种我忽略的更简单的方法?

感谢任何帮助。谢谢!

最佳答案

使用{% include ... with ... %}语法:

{% for car in user.favorite_cars.all %}
{% include "car.html" with name=car.name year=car.year %}
{% endfor %}

另一种选择是 {% with %}标签:

{% for car in user.favorite_cars.all %}
{% with name=car.name year=car.year %}
{% with color=car.color %}
{% include "car.html" %}
{% endwith %}
{% endwith %}
{% endfor %}

更新:如果无法从 Car 模型获取模板数据,则必须使用 custom inclusion tag :

from django import template

register = template.Library()

@register.inclusion_tag('car.html')
def show_car(car):
history = get_history_for_car(car)
return {'name': car.name, 'history': history}

模板中的:

{% load my_car_tags %}

{% for car in user.favorite_cars.all %}
{% show_car car %}
{% endfor %}

关于python - 在 Django 模板语言中包含标签——我可以向它传递什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28910668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com