Подтвердить что ты не робот

Как проверить, существует ли пара имен/значений при публикации данных?

Я не могу найти правильный синтаксис для выполнения того, что я хочу делать. Я хочу что-то сделать, если пара имени/значения отсутствует. Вот код на мой взгляд:

if (!request.POST['number']):
    # do something

Каков правильный способ выполнить что-то подобное выше? Я получаю синтаксическую ошибку при попытке этого.

4b9b3361

Ответ 1

@Thomas предоставил вам общий способ, но есть ярлык для конкретного случая получения значения по умолчанию, когда ключ не существует.

number = request.POST.get('number', 0)

Это эквивалентно:

if 'number' not in request.POST:
    number = 0
else:
    number = request.POST['number']

Ответ 2

Наиболее логично:

if not 'number' in request.POST:

Соглашение Python:

if 'number' not in request.POST:

Оба работают точно так же.

Ответ 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>

Надеюсь, что это поможет,