如何检查数据发布时是否存在名称/值对?

30 投票
5 回答
45701 浏览
提问于 2025-04-16 19:38

我找不到正确的写法来实现我想做的事情。我想要在某个名字/值对不存在的时候做点什么。这里是我在视图中的代码:

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']

撰写回答