Как проверить, существует ли пара имен/значений при публикации данных?
Я не могу найти правильный синтаксис для выполнения того, что я хочу делать. Я хочу что-то сделать, если пара имени/значения отсутствует. Вот код на мой взгляд:
if (!request.POST['number']):
# do something
Каков правильный способ выполнить что-то подобное выше? Я получаю синтаксическую ошибку при попытке этого.
Ответы
Ответ 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>
Надеюсь, что это поможет,