2012-11-09 15 views
28

iki birleştirilmiş form var. Temel olarak kullanıcı ilk form doldurur ve sonra ilk formun verisine değer katan ikincisine yönlendirilir. E.G. Ben bir form Movie (ilk form) var ve sonra ben film için aktör ekleyen formu (aktör) yönlendirilir.django createview yaratılan nesnenin nasıl oluşturulacağını

cezası: Benim durumumda Film = chiamata ve aktör de

= Offerta (D i gerekenler için İtalyanlar adını tutmak).

bunlar benim URL'ler urls.py içindedir

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

ben bu oluşturmak Arkadan görünüş

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

şimdi sorun i chiamataForm yarattığı nesnenin PK iyi şekilde nasıl olduğunu ettik . Bunu offerta_create ürününün URL'sine eklemek için buna ihtiyacım var.

cevap

33

belki bu durumda get_success_url() yöntemi (see reference)

kullanabilirsiniz, bu olurdu gibi bir şey:

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

yup it 'get getuccess_url (self): geri dönüş ('offerta_create', args = (self.object.id,))' – EsseTi

+0

@EsseTi "self.object.id" yöntemini kullanmaya çalıştığımda Eğer yaptığını, ben self.object' kesinlikle varolduğuna bile 'da, geri' None' almak ve bu benim veritabanı (MySQL) kaydedilir vurmayacak. Bunun neden olabileceği konusunda bir anlayış var mı? –

+1

gerçekten değil. (henüz) kaydedilmemiş olabilir, bu yüzden kimlik yok. Başka bir alana erişmeye çalışırsanız ne olur? – EsseTi

İlgili konular