gpt4 book ai didi

python - Django ifequal 和 if 语句总是转到 Else 标签

转载 作者:行者123 更新时间:2023-12-01 02:28:04 26 4
gpt4 key购买 nike

我目前正在尝试将产品 ID 与 URL 中给出的 ID 进行比较。但模板中的 if 语句始终返回“else”,即使测试表明两者相等。

views.py(给出数据的地方)

def editstatus(request, product_id):
try:
request.session['user_id']
except KeyError:
return redirect("/login")
products = Product.objects.all()
context = {
"product":products,
"theid" : product_id,
}
return render(request, 'posystem/status.html', context)

status.html(如果语句不起作用)

{%for product in product%}
<tbody>
<tr>
<td>{{product.id}}</td>
<td>{{theid}}</td>
<td>{{product.product_description}}</td>
<td>{{product.product_number}}</td>
<td>{{product.product_quantity}}</td>
<td>{{product.unit_cost}}</td>
<td>{{product.final_cost}}</td>
<td>{{product.status}}</td>
{% ifequal product.id theid %}
<h1>hello</h1>
{% else %}
<h1>hello2</h1>
{% endifequal %}

{% if theid %}
{% if product.id == theid %}
<td><select>
<option value="5 Votes Needed">5 Votes Needed</option>
<option value="Ready to Order">Ready to Order</option>
<option value="Needs to Be Signed">Needs to Be Signed</option>
<option value="Ordered">Ordered</option>
<option value="Recieved">Recieved</option>
</select></td>
<td><form class="" action="/changestatus/{{product.id}}" method="post">
{% csrf_token %}
<button type="submit" name="edit">Save</button>
</form></td>
{% endif %}
{% else %}
<td><form class="" action="/status/{{product.id}}" method="post">
{% csrf_token %}
<button type="submit" name="edit">Edit</button>
</form></td>
{% endif %}

</tr>
</tbody>
{% endfor %}

我很困惑为什么它既不能与 ifequal 标签一起使用,也不能与普通的 if 标签一起使用。

最佳答案

由于 product_id 来自 URL,因此它将是一个字符串,而不是整数。您需要将其转换为整数。

context = {
"product":products,
"theid" : int(product_id),
}

在 Python 和 Django 模板语言中,'1' 不等于 1

关于python - Django ifequal 和 if 语句总是转到 Else 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163809/

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