44

私は2つの連結されたフォームを持っています。基本的に、ユーザーは最初のフォームに入力すると、最初のフォームのデータに値を追加する 2 番目のフォームにリダイレクトされます。EG 私はフォーム ムービー (最初のフォーム) を持っていて、その後、俳優をムービーに追加するフォーム (俳優) にリダイレクトされます。

私の場合、Movie = Chiamata および Actor = Offerta (私が必要とするイタリア語の名前を保持します:D)

大丈夫。

これらはurls.pyの私のURLです

url(r'^chiamata/$', ChiamataCreate.as_view(),name='chiamata_create'),
url(r'^chimamata/(?P<pk>\d+)/offerta$', OffertaCreate.as_view(), name='offerta_create'),

私はこのビューを作成しました

class ChiamataCreate(CreateView):
    template_name = 'chiamata_form.html'
    form_class = ChiamataForm
    success_url=reverse_lazy('offerta_create',args=(??,))

問題は、chiamataForm によって作成されたオブジェクトの PK を取得する方法です。offerta_create の URL に追加する必要があります。

4

2 に答える 2

63

おそらくあなたはget_success_url()方法を使うことができます(参照を見てください

この場合、次のようになります。

def get_success_url(self):
    return reverse('offerta_create',args=(self.object.id,))
于 2012-11-09T14:50:41.537 に答える
0

なぜデータベースに保存した後、CreateView の self.object に ID がないのですか?の受け入れられた回答を参照してください。-モデルから「id」フィールドを削除し、その回答で推奨されているように、各モデルでDjangoのデフォルトを独自のid AutoFieldにすると、CreateViewでself.object.idが正常に機能しました。

于 2015-03-02T15:44:13.497 に答える