Как проверить, существует ли пара имя / значение при публикации данных? - PullRequest
23 голосов
/ 15 июня 2011

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

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

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

Ответы [ 3 ]

42 голосов
/ 15 июня 2011

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

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

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

if 'number' not in request.POST:
    number = 0
else:
    number = request.POST['number']
21 голосов
/ 15 июня 2011

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

if not 'number' in request.POST:

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

if 'number' not in request.POST:

Оба работают одинаково.

3 голосов
/ 16 сентября 2016

То, что я использовал много раз, в моем представлении :

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>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...