4

Djangoを使用していますが、URLを変更せずに変数情報をサーバーに戻すのに問題があります。アクションを/fooにすることを除いて、私が望むように機能するものは次のとおりです。

<form method="post" action="/foo/{{ variable }}">
  <input type="submit" value="bar"/>
</form>

これを行うと、URLを解析するときに変数を簡単に取得できます。代わりに、POSTQueryDictに変数を追加したいと思います。これは可能ですか?

4

5 に答える 5

7

はい。入力フィールドを追加するだけです。

<form method="post" action="/foo/">
  <input type="hidden" value="{{ variable }}" name="name_of_var">
  <input type="submit" value="bar"/>
</form>

次に、次の方法でビューの変数にアクセスできます。

request.POST['name_of_var']

または、変数が存在するかどうかわからない場合。これは例外を発生させませんが存在しません。

request.POST.get('name_of_var')
于 2012-10-02T21:04:10.033 に答える
3

フォーム内に入力するだけです。

<input type="hidden" value="{{ variable }}" name="foo" />

次に、ビューで:

foo = request.POST.get('foo', None)

また、にurlタグを使用することをお勧めしますaction

于 2012-10-02T21:06:15.523 に答える
0

Simply add a hidden input element with the name and value you need like so:

<input type="hidden" name="varname" value="myvalue" />
于 2012-10-02T21:05:24.217 に答える
0

Can you not make the variable an input field in the form? You can make it hidden to avoid overriding it. This will post the data in the submit and achieve what you want.

于 2012-10-02T21:05:40.030 に答える
0

これがDjangoセッションフレームワークの目的ではありませんか?URLを介してデータを渡そうとせずに、データをやり取りできます。

セッションフレームワークを使用すると、サイト訪問者ごとに任意のデータを保存および取得できます。サーバー側にデータを保存し、Cookieの送受信を抽象化します。

https://docs.djangoproject.com/en/1.5/topics/http/sessions/

于 2013-08-06T20:33:03.133 に答える