我無法找到正確的語法來做我想做的事情。如果名稱/值對不存在,我想做點什麼。這裏是我認爲的代碼:如何在發佈數據時檢查名稱/值對是否存在?
if (!request.POST['number']):
# do something
什麼是正確的方式來完成類似上面的東西?當我嘗試這個時遇到語法錯誤。
我無法找到正確的語法來做我想做的事情。如果名稱/值對不存在,我想做點什麼。這裏是我認爲的代碼:如何在發佈數據時檢查名稱/值對是否存在?
if (!request.POST['number']):
# do something
什麼是正確的方式來完成類似上面的東西?當我嘗試這個時遇到語法錯誤。
大多數邏輯:
if not 'number' in request.POST:
Python的約定:
if 'number' not in request.POST:
以完全相同的方式裏工作。
@Thomas爲您提供了通用的方法,但是當某個鍵不存在時,獲取默認值的具體情況有一個快捷方式。
number = request.POST.get('number', 0)
這相當於:
if 'number' not in request.POST:
number = 0
else:
number = request.POST['number']
我用過很多次,在我視圖如下:
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>
希望它幫助,
假設你是Python的新手,而不僅僅是Django。首先,Django中的'request.POST'就像一個普通的Python *字典*。所以你需要找出*什麼是正確的語法來測試字典中鍵的存在*。一旦你知道了,你可以谷歌正確的事情,並找到了很多已經問StackOverflow非常類似的問題(例如,http://stackoverflow.com/questions/1602934/what-is-a-good-方法對測試-IF-一個琴鍵存在 - 在 - python的詞典)。 – Tony 2011-06-15 18:43:22