DjangoとJavascript(私はJQueryを使用しています)の両方にかなり新しいので、私はハックをしているのか、クライアント側のデータベースIDをdjangoサーバ側に送るより滑らかな方法があるのだろうかと思います。DjangoとJavascriptの間で情報を共有するには?
bProcessingオプションを使用してAJAXを使用してデータベースからレコードを取得すると、データの行を表示するdataTable(http://datatables.net)があります。私urls.pyでのURLのようなものです:
url(r'^assets/activitylog/(?P<cid>.*)$', views.getActivityTable_ajax, name="activitylog_table"),
と私のdataTable AJAX-relavantコードのようなものです:
Djangoのビューで使用されるjavascript関数getIDFromHTML()
グラブ
<cid>
"sAjaxSource": "/assets/activitylog/" + getIDFromHTML(),
単に:
function getIDFromHTML(){
// Simply return the text in the #release_id div element from the HTML
return $("#release_id").html();
};
これは私にとって「ハッキー」な部分です。私は私のテンプレートコードにデータベースIDを私はdatatablesのURL(ディスプレイで:私はそれをビューに渡すことができますので、CSSではない)を使用して挿入されています。これは、コードがHTML自体に埋め込まれていない限り、JavaScriptコードでdjangoテンプレートタグを使用することができないため、ほとんどが必要です。
私が見つけた唯一の他の事はに渡されたパラメータを取り除くためにURLを変更することです:
url(r'^assets/activitylog', views.getActivityTable_ajax, name="activitylog_table"),
とを視野にコードを変更:
以来def getActivityTable_ajax(request):
"""Returns the activity for a given pid from HTTP GET ajax reqest"""
pid = int(urlparse.urlparse(request.META['HTTP_REFERER']).path.split('/')[-1])
# rest of view code here...
私が必要とするIDはこのreferer urlの終わりです。
この方法では、隠されたデータベースIDをHTMLに埋め込み、ajax経由でテーブルの人口ビューコードを渡すことで、猿を回る必要はありません。
リクエストオブジェクトでこのようにHTTP_REFERERを使用しても問題ありませんか?私は完全に間違った方法でこれについて行きますか?
ありがとうございます!コードはHTML自体に埋め込まれていない限り1はjavascriptのコードでDjangoのテンプレートタグを使用することはできません
は、「HADNそれ以前に考えたことはありません。 – Randy