Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Django模板中的上下文变量与SQL ID进行比较?_Python_Django_Templates - Fatal编程技术网

Python 如何将Django模板中的上下文变量与SQL ID进行比较?

Python 如何将Django模板中的上下文变量与SQL ID进行比较?,python,django,templates,Python,Django,Templates,我正在创建一个愿望列表类型的站点,其中突出显示了用户最后一次更改的行。然而,我在这样做时遇到了麻烦,因为显然在上下文变量上使用“==”,对象的ID没有返回true,尽管它们看起来都一样 例如,这是我正在进行的render调用: def wishlist(request): ... user_change = request.COOKIES.get('voted_or_added', False) return render(request, 'xbox_wishlist/

我正在创建一个愿望列表类型的站点,其中突出显示了用户最后一次更改的行。然而,我在这样做时遇到了麻烦,因为显然在上下文变量上使用“==”,对象的ID没有返回true,尽管它们看起来都一样

例如,这是我正在进行的
render
调用:

def wishlist(request):
    ...
    user_change = request.COOKIES.get('voted_or_added', False)
    return render(request, 'xbox_wishlist/wishlist.html', { 'user_change': user_change, })
然后在我的模板中,我有:

...
<tbody>
    {% for game in ranked_wishlist %}
        {% if user_change == game.id %}
    <tr style="background: #80FF80;">
        {% else %}
    <tr>
        {% endif %}
...
。。。
{排名中游戏的%u愿望列表%}
{%if user_change==game.id%}
{%else%}
{%endif%}
...
我试着显示
{{game.id}
{{user\u change}}
,它们都在正确的位置显示相同的数字,但是
if
语句的谓词似乎永远不会计算为True。我试过用中的替换
==
,我试过交换他们的位置,我试过了所有方法,但似乎没有任何效果

有什么想法吗?

HttpRequest.COOKIES

包含所有cookie的标准Python字典。键和值是字符串

所以问题是
user\u change
是一个字符串,而
game.id
是一个整数。在python中,一个整数,其字符串表示形式不相等

请尝试以下方法:

user_change = int(request.COOKIES.get('voted_or_added', -1))
return render(request, 'xbox_wishlist/wishlist.html', { 'user_change': user_change, })

啊,就是这样。我想到了这一点,但我不确定如何在模板内转换为int/string。。。在交给你之前我没想过要这么做谢谢你!,但一般来说,您希望在视图中保留这种逻辑,而不是模板。