は、メッセージを表示するには、jQueryのを使用してください。
処理メッセージ/画像を含むページに非表示のdivタグを配置します。
ボタンをクリックしてGETリクエストを送信すると、onclickイベントがボタンに表示され、divタグが表示されます。ビューの処理が完了すると、ページがリロードされ、ターゲットページが表示されます。
AJAXを使用してビューを呼び出す場合は、ajaxStartイベントとajaxCompleteイベントにdivの表示/非表示を設定できます。
EDIT:第三者からページが呼び出されるため、問題は少し複雑になります。私はあなたがデータなしでページをロードし、ページがロードされると、データを取得するためのAJAX GETリクエストを行うことをお勧めします。
次のようにあなたが行うことができます:
は、Progressメッセージ/画像をページに隠されたのdivタグを追加します。
<div id="progress">Please wait while the page is loading.</div>
次に、ページにAJAX GET呼び出しを追加:
$(document).ready(function() {
//Attach the ajaxStart and ajaxComplete event to the div
$('#progress').ajaxStart(function() {
$(this).show();
});
$('#progress').ajaxComplete(function() {
$(this).hide();
});
//Perform the AJAX get
$.get('/your_view/', function(data) {
//Do whatever you want with the data here
});
});
上記のコードはテストされていないが、それはあなたのアイデアを与えるだろう。
UPDATE
私はあなたのビューからJSONオブジェクトまたは類似を返すことを示唆している:
は
companies = Company.objects.filter(name__istartswith=companyname)
results = [{'value': company.name, 'id':company.id} for company in companies ]
json = simplejson.dumps(results)
return HttpResponse(json, mimetype='application/json')
また、jQueryの中のget()の代わりにgetJSON()メソッドを使用することができます。
ありがとうございます。これが私の上記の要件を満たしていれば(1,2,3の手順を参照してください)、いくつかのサンプルコードを与えることができます。 – TonyM
上記のEDITをご覧ください – Mikael
ありがとうございます。 AJAXを取得するには、Ajaxを有効にするために既存のDjangoビューを変更する必要がありますか?私はデータが私のビューが返すすべてのHTMLページを含むと推定しますか?これを表示できますか? – TonyM