2014-05-21 35 views
0

所以基本上我想製作一個簡單的表單,我可以輸入文本,然後我點擊提交,看到文本。使用Django顯示錶單輸入

這裏是我的forms.py:

class Search(forms.Form): 
     search = forms.CharField() 

這裏是我的views.py:

def search(request): 
    context = RequestContext(request) 

    if request.method == 'POST': 
     search = Search(data=request.POST) 

     if search.is_valid(): 
      ticker = search.save() 
      ticker.save() 
      success = True 

     else: 
      print search.errors 
    else: 
     search = Search()  

    return render_to_response('ui/search.html', {"search":search}, context) 

這裏是您用來輸入HTML表單中(我使用的是系統啓動時進行造型用途):

<form class="navbar-form navbar-right" role="search" action="/search/" method="post" name="tick"> 
       {% csrf_token %} 
       <div class="form-group"> 
        <input type="text" class="form-control" placeholder="Enter stock symbol"> 
       </div> 
       <button type="submit" class="btn btn-primary">Submit</button> 
    </form> 

最後,我想顯示在「search.html」它看起來像在表單中輸入文本這目前:

{% extends 'ui/base.html' %} 

{% block title %} search {% endblock %} 

{% block body_block %} 
<br> 
<p>test</p> 
{{ form.search.data }} <!--I'm pretty sure this is not correct --> 
{% endblock %}  

任何人都知道我可以做到這一點?謝謝。

+0

不能調用'保存()'上正常形式;你確定這是你正在運行的確切代碼嗎?您還有其他問題,因爲並非所有執行路徑都會返回HttpResponse對象。你能確認這是否是你正在運行的確切代碼? –

+0

我可以使用.save()註釋掉兩行,並且不會出錯。但我也沒有得到我在表單中輸入的內容,這是我想要添加到我的模板中的理想內容。 – ng150716

回答

0

您的模板是錯誤的,因爲您懷疑。

它正在尋找一個名爲「form」的上下文變量,但是您給它一個名爲「search」的密鑰的上下文字典。

另外,「數據」是用於構建對象(正確)的參數,但是當您想從中提取用戶輸入時,應該使用字段名稱,而您需要調用value()爲了得到這個界限值。因此,要獲取文本字段的內容search,您應該使用search.search.value

嘗試改變線

{{ form.search.data }} 

{{ search.search.value }} 
0

你的表單名稱是search

要渲染與現代Django的價值,你需要調用場value方法,因此你的模板應如下所示:

{{ search.search.value }}