我落得這樣做是:
1)
我創造了獲取搜索結果的看法,這歸結爲:
#/myproject/admin/views.py
@never_cache
def news_search(request):
#...query web service
if 'q' in request.POST:
search_term = request.POST['q']
else:
search_term = ''
news = NewsSearch()
news.search(search_term)
return render_to_response( 'news_search_results.html',
{ 'q': search_term,
'news': news.result_list,
'page': page,
'page_left': news.page_left,
'page_right': news.page_right}
)
2)I映射視圖:
#/myapp/urls.py
...
url(r'^myapp/news/search/$', views.news_search),
3)我擴展了change_form。HTML的新聞模型下面的代碼:
#/myproject/templates/admin/myapp/news/change_form.html
{% extends "admin/change_form.html" %}
{% block after_field_sets %}
...
{% csrf_token %}
<input type="text" name="q" id="news-search-term">
<div id="news-search-results"></div>
...
function submitSearchForm() {
$.post("/myapp/news/search/",
{ 'q': $('#news-search-term').val(),
'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val() },
function(data){
$('#news-search-results').html(data);
}
);
}
{{ block.super }}
{% endblock %}
4)我創建的HTML模板顯示結果(news_search_results.html,參見圖1)
所以基本上我從Ajax請求管理頁面到自定義視圖來檢索web服務的結果,然後顯示在div中。
結果列表中的每個元素都有一個按鈕,用於發送另一個請求,該請求將具有新聞ID的元素存儲爲ForeignKey。
我不知道這是否特別針對Django原則。但它似乎工作正常。
建議以更「Djangonian」的方式做到這一點是值得歡迎的。
對不起,我只是想出了彈出將無法「返回」JSON很容易,所以我改變了我的建議 – jpic 2012-03-08 16:00:31
我無法訪問鏈接... – Yann 2012-03-08 16:12:58
感謝您的反饋意見,事實證明,我有一個破解我的主機文件...更新了鏈接 – jpic 2012-03-08 16:23:03