我正在创建一个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 %}
...
我已尝试同时显示{{ game.id }}
和{{ user_change }}
,并且它们都在正确的位置显示相同的数字,但if
语句的谓词似乎没有评估到真的。我已经尝试用==
替换in
,我尝试过交换他们的位置,我已经尝试过一切,但似乎没有任何工作。
有什么想法吗?
答案 0 :(得分:1)
<强> HttpRequest.COOKIES 强>
包含所有Cookie的标准Python字典。键和值是字符串。
所以问题是user_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, })