我有一個模板,它允許用戶輸入搜索參數(search.html)如何在沒有POST請求的情況下獲取WTF表單對象數據?
{% from "_formhelpers.html" import render_field %}
<form method=」post」>
<dl>
{{ render_field(form. notificationId) }}
{{ render_field(form. recordName) }}
</dl>
<div id="searchResults" > </div>
</form>
宏
{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}
而對於搜索結果(result.html)
{% for notification in content %}
Result:
content[notification]['type'] }}</td>
{% endfor %}
模板
我正在使用以下ajax請求來獲取搜索結果並顯示在上面的模板中。在兩個搜索字段的keyup上調用ajax函數
$.ajax(
{
url: ‘result’,
dataType: "html",
data:createQueryString(),// gets the value from the dataFields and creates a queryString
success: function(data)
{
$("# searchResults").html(data); } });
我也有2個視圖一個用於searchcriteria部分(包含2個搜索字段的部分)和一個用於搜索結果部分。
class NotificationSearchView(MethodView):
def get(self):
searchform = SearchForm()
return render_template("search.html」, searchform=searchform)
@classmethod
def registerSelf(cls, app):
NotificationSearchView.app = app
app.flaskApp.add_url_rule('/search ', view_func=NotificationSearchView.as_view(‘search’))
class NotificationResultView(MethodView):
def get(self):
searchform = SearchForm()
success, content=self.performSearch(searchform) //search method which takes the search parameters and performs the search
return render_template("result.html」, content=content)
@classmethod
def registerSelf(cls, app):
NotificationResultView.app = app
app.flaskApp.add_url_rule('/result', view_func= NotificationResultView.as_view(‘result’))
WTF窗體類
from wtforms import Form, TextField
class SearchForm(BaseForm):
notificationId = TextField(notificationId)
recordName = TextField(recordName)
我現在面臨的問題是,當Ajax調用到NotificationResultView,我相信這是因爲取得了跆拳道表單對象不填充沒有發佈帖子請求,但根據我的設計,不需要發佈帖子請求。
我已讓Ajax請求的POST請求嘗試,但即使如此,跆拳道表單對象回來空。
現在我唯一的選擇是,如果我通過搜索條件查詢字符串進行Ajax調用的時候,但不知道這是最好的approach.Please建議如何在這種情況下進行。
感謝您指出,在創建從我的原代碼,我忘了,包括該位的例子。我現在已經更新了這個問題 – Priyam 2013-03-06 11:33:35