0

会社でのポジションを表すモデルがあります。

class Position(models.Model):
    preferred_q = ForeignKey("Qualifications", blank=True, null=True, related_name="pref")
    base_q = ForeignKey("Qualifications", blank=True, null=True, related_name="base")

    #[...]

最低限の資格を表す2つの「内部オブジェクト」と、ポジションの「優先」資格があります。

インスタンスを編集/表示するために汎用ビューを設定していPositionます。そのページ内に、ユーザーが各タイプの資格を編集できる別のページに移動するリンクがあります。問題は、そのオブジェクトが空である可能性があるため(設計上、空白とnullがTrueであるため)、資格の主キーを渡すことができないことです。代わりに、位置の主キーとキーワードを渡すpreferred_qualificationか、次base_qualificationのようにURLで渡します。

(r'^edit/preferred_qualifications/(?P<parent_id>\d{1,4})/$', some_view),

(r'^edit/base_qualifications/(?P<parent_id>\d{1,4})/$', some_view),

一般的なビューを使用してこれを行う方法はありますか、それとも独自のビューを作成する必要がありますか?これは通常のビューを使用するケーキのように単純ですが、単純にするために、できる限りすべてを汎用ビューに移行しようとしています。

4

2 に答える 2

0

編集フォームを InnerModel の関連するインスタンスの 1 つにしたいが、ParentModel の PK を URL に渡したい場合 (これがあなたが求めているものであることがわかりますが、それほどではありません) clear)、ラッパー ビューを使用する必要があります。そうでなければ、Django のジェネリック ビューはどの関連オブジェクトを編集したいのかを魔法のように知ることができるのでしょうか?

この方法で編集したい「多くのモデル」の関連オブジェクト属性がどの程度一貫しているかにもよりますが、多数ではなく 1 つのラッパー ビューでこれを機能させることができる可能性が高くなります。コードをもっと見ないとなんとも言えません。

于 2009-06-16T11:36:20.923 に答える
-1

汎用ビューのドキュメントでupdate_object説明されているように、URL定義にキーのParentModel値がある場合は、すべて設定されている必要があります。'model'options_dict

于 2009-06-16T10:45:44.067 に答える