2011-01-20 7 views
0

一般的な動的に作成されたオブジェクトをあるビューから別のビューの引数として渡すのに便利な方法はありますか?私がドキュメントから知る限り、文字列だけを渡すことができます。Django:ビューに引数としてオブジェクトを渡す

私は2つの回避策を考えていた:モデルを保存し、次のビューに(文字列)でのみモデルIDを渡し、

  1. ベースモデル上のオブジェクト。このビューは、オブジェクトを再度ロードできます。
  2. Serializingオブジェクト、及び次のビューに(現在の文字列である)シリアライズされたオブジェクトを渡します。このビューは、オブジェクトを逆シリアル化できます。

たぶん私は何かを欠場?そうでない場合、誰かが回避策に関する意見を持っていますか?

答えて

1

むしろ文字列としてビューに渡すよりも、あなたは最初のビューでセッションに保存し、第二に、そこからそれを拾うことができます。セッションはあなたの生のオブジェクトを受け入れることができるはずですが、最初にそれを明示的に直列化する必要があるかもしれません。

0

私の知る限り、あなたは別のビューにDjangoのモデルインスタンスを渡すことができます。 Pythonでは、任意のオブジェクトインスタンスを引数として取ることができます。ビューは確かに文字列に限定されていません(int、tuples、リスト、辞書などを渡すことは間違いありません)。

+0

は、私は私のWebプログラミング/ Djangoのスキルが悪い怖い...私はこれまでやったものです私はHttpResponseRedirectを返す(「/ edituser /%s」は%のユーザ名)。その後、URLでパターンマッチングを行って、私は次のビューでキーワード引数として消費するユーザー名を抽出します。どのように直接、別の1からのビューを呼び出すことなく、かなりSHURE ... – Isaac

+0

アイザックあなたが他の機能 – JohnO

+0

は、私は、私はエラー「ManagementFormデータが欠落しているか、改ざんされている」取得しようとした厥呼び出しますようにあなたはそれを呼び出します。私はHttpResponseRedirectの代わりにedit_user(request、uid = uid)を呼び出します。 – Isaac

関連する問題