2016-10-07 51 views
0

使用Python27使用Django 1.5從Django 1.5模板中讀取用戶選擇,而無需使用模型

我一直在網上數小時沒有成功。有沒有辦法捕捉用戶從模板中的下拉列表框中選擇的內容而不使用模型?我正在尋找一種直接的方式來讀取某些var到views.py中的代碼。

example.html的

<select name="num_select"> 
    <option value="0">-----</option> 
    <option value="10">1 - 10</option> 
    <option value="20">10 - 20</option> 
    <option value="30">20 - 30</option> 
    <option value="40">30 - 40</option> 
    <option value="all">all</option> 
</select> 

其中的每一個選項我選擇我想通過我的views.py價值的VAR

views.py

def my_view(request): 
    ... 
    num_select = forms.????.get['num_select'] 
    ... 
    return blah blah.... 

我希望我已經提供了足夠的細節來幫助我。不知道我還能添加什麼。我一直在瀏覽文檔頁面,但沒有成功。我知道如何從views.py中獲取vars到html模板,但不是反之亦然。

非常感謝幫助。

+0

使用'print(forms)'或甚至'print(dir(forms))'來查看你在表單中的含義。 – furas

+0

感謝您的回覆。不知道如何使用它來獲得我所需要的。從下面看,我認爲我應該很好。謝謝! – New2Python

+0

'dir(object)'返回對象中的所有函數和變量 - 如果您不記住名稱並且不使用帶有自動完成功能的IDE,則它很有用。 – furas

回答

1

是的,你不需要爲這個模型在所有的,你需要的是一個簡單的django form之前包括if request.method == 'POST':

CHOICES = ((1,"10"), (2,"20"), ...) 

class MyForm(forms.form): 
    ... 
    num_select = forms.ChoiceField(choices = CHOICES) 
    ... 

然後在您的視圖

from myapp.forms import MyForm 

def my_view(request): 

    if request.method = 'POST': 
     form = MyForm(request.POST) 
     if form.is_valid(): 
       num_select = form.cleaned_data['num_select'] 

這當然是它的一個相當精簡版,瞭解更多信息請參考上面的鏈接。

如果你不想使用表單,你可以直接訪問request.POST,但是使用Django有什麼意義?你不妨使用PHP

+0

dah!幾乎在那裏。看起來像這只是我需要的東西。謝謝。 – New2Python