如何检查数据发布时是否存在名称/值对?
我找不到正确的写法来实现我想做的事情。我想要在某个名字/值对不存在的时候做点什么。这里是我在视图中的代码:
if (!request.POST['number']):
# do something
那我该怎么做才能实现上面的功能呢?我尝试这样写的时候出现了语法错误。
5 个回答
3
我在我的视图中经常使用以下内容:
def some_view(request):
foobar = False
if request.GET.get('foobar'):
foobar = True
return render(request, 'some_template.html',{
'foobar': foobar,
})
然后,在我的模板中,我可以使用以下的URL语法来设置foobar
:
<a href="{% url 'view_name_in_urls' %}?foobar=True">Link Name</a>
另外,由于我们从上面的视图中返回了foobar
变量,我们可以在模板中结合其他逻辑块使用它(这对导航非常有帮助!):
<li class="nav-item">
{% if foobar %}
<a class="nav-link active" ....
{% else %}
<a class="nav-link" ....
{% endif %}
</li>
希望这对你有帮助,
31
从逻辑上讲:
if not 'number' in request.POST:
Python的约定:
if 'number' not in request.POST:
这两种方式的工作原理完全相同。
57
@Thomas 提供了一个通用的方法,但在特定情况下,如果一个键不存在时获取默认值,其实有个更简单的办法。
number = request.POST.get('number', 0)
这和下面的写法是一样的:
if 'number' not in request.POST:
number = 0
else:
number = request.POST['number']