2014-01-18 56 views
0

這是我理解Django的工作方式。
從瀏覽器的地址欄中搜索urls.py以查找匹配的地址。 如果找到地址,則下一步是訪問views.py中的def()。def()執行內容並將數據傳遞迴網頁。將用戶輸入的多個值傳遞給Django視圖

我想做的事,並不理解這樣做的機制,是從網頁採取兩個輸入日期,並將它們傳遞給views.def()。在網頁上提交更多的數據條目。如果是這樣,這是如何工作的?

的test.html

{% extends 'base.html' %} 
{% block content %} 
    <br /><br /> 
    <form action="" method="get"> 
     <label for="from">Start Date</label> 
      <input type="text" name="start_date"><br /><br /> 
     <label for="to">End Date &nbsp;</label> 
      <input type="text" name="end_date"><br /> 
     <input type="submit" value="Submit"> 
    </form> 
    <p>{{ s_date }}</p> 
    <p>{{ e_date }}</p> 
{% endblock %} 

views.py

def Test(request): 
    if 'start_date' in request.GET: 
     s_date = request.GET['start_date'] 
     e_date = request.GET['end_date'] 
    else: 
     s_date = None 
     e_date = None 
    context = {"s_date": s_date, "e_date": e_date} 
    return render_to_response('test.html', context, context_instance=RequestContext(request)) 

在消息#1的方法Passing objects from template to view using Django = 「POST」 被使用。因爲我只想讀取數據會方法=「得到」更好?

爲防萬一,日期以yyyy-mm-dd格式存儲。

該功能正在工作。我想知道我錯過了從模板到函數的變量傳遞。

謝謝。

回答

1

您可以使用request.GET訪問GET參數,例如request.GET['start_date']request.GET['end_date']

+0

嗨路德維克。道歉,但我不明白你是什麼意思。你能詳細解釋一下嗎? –

+0

我向您展示瞭如何在視圖中訪問從表單發送的數據。你究竟不清楚什麼? –

+0

如果您願意,我必須回到第0級。上面的html代碼是否可能將「start_date」和「end_date」值傳回給函數def BetweenDates(request)?我是否需要額外的參數,如「def get_hotel_sum_quantity(self,product_id,checkin_date,checkout_date):」如http://stackoverflow.com/questions/8429407/unboundlocalerror-local-variable-prod-available-referenced-before-assignment ?我看不到如何將兩個日期從模板傳遞迴Django Books v2中的函數的示例。 –