2つの連結形式があります。基本的にユーザーは最初のフォームに入力し、次に2番目のフォームにリダイレクトされ、最初のフォームのデータに値が追加されます。例えば。ムービー(最初のフォーム)のフォームを作成した後、俳優をムービーに追加するフォーム(俳優)にリダイレクトされます。
私の場合、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に追加する必要があります。
多分あなたはget_success_url()
メソッドを使うことができます( 参照を参照 )
この場合、次のようになります。
def get_success_url(self):
return reverse('offerta_create',args=(self.object.id,))
データベースに保存した後、CreateViewのself.objectにIDがないのはなぜですか? -モデルから「id」フィールドを削除したら、Djangoは、その回答で推奨されているように、各モデルで独自のID AutoFieldにデフォルトで設定されています。