2012-11-09 4 views
28

두 개의 연결된 양식이 있습니다. 기본적으로 사용자는 첫 번째 양식을 채우고 첫 번째 양식의 데이터에 가치를 더하는 두 번째 양식으로 리디렉션됩니다. E.G. Form Movie (첫 번째 양식)를 작성한 다음 해당 영화에 액터를 추가하는 양식 (액터)으로 리디렉션됩니다.django createview 생성 된 객체를 얻는 방법

잘 : 내 경우 영화 = Chiamata과 배우의

는 = Offerta는 (D 내가 필요의 이탈리아 이름을 유지).

그 내 URL은 urls.py에

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에 추가해야합니다.

답변

33

어쩌면 당신이 경우 get_success_url() 방법 (see reference)

를 사용할 수 있습니다, 그것은 것 같은 뭔가 :

def get_success_url(self): 
    return reverse('offerta_create',args=(self.object.id,)) 
+6

예'get get_success_url (self) : return reverse ('offerta_create', args = (self.object.id,))' – EsseTi

+0

@EsseTi'self.object.id'를 사용하려고 할 때 self.object가 확실히 존재하고 내 데이터베이스 (MySQL)에 저장되는 경우에도 'None'을 반환합니다. 그 이유에 대한 통찰력? –

+1

아닙니다. 아직 (아직) 저장되지 않았기 때문에 이드가 없습니다. u가 다른 필드에 액세스하려고하면 어떻게됩니까? – EsseTi

관련 문제