Django模板标签获取/过滤模型

时间:2018-04-15 20:36:31

标签: django templatetags

我试图使用模板标签来完成某些事情。 我有一个商店,有产品的评级。我想要一个获得评级值的模板标签和用户(如果存在)。

@register.simple_tag
def puntaje_usuario(prod):
    rating = Rating.objects.get(usuario=request.user.id, producto=prod.id)
    return rating

我想在这里使用它:(模板评级明星)

<div class="prod-info">
<h5><a href="{{x.get_absolute_url_shop}}" class="txt-muted"> {{x.nombre}} </a></h5>
{% if puntaje_usuario x %}
    <!-- SAME SELECT THAT "else" WITH RATING VALUE OPTION SELECTED -->
{% else %}
<div class="stars stars-example-css m-b-10">
    <select class="rating-star puntaje-producto" data-url="{% url 'puntuar_producto' %}" data-producto="{{x.id}}" data-usuario="{{request.user.id}}" name="rating" autocomplete="off">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
</div>
<h6 class="txt-info">{% rating_promedio x.id %}</h6>
{% endif %}        

我得到的错误是未使用&#39;&#39; x&#39;&#39;在表达结束时。

1 个答案:

答案 0 :(得分:1)

您不能直接在if中使用标记。您需要先将其分配给变量:

{% puntaje_usuario x as my_val %}
{% if my_val %}
    ...