2012-11-09 22 views
28

ich habe zwei verkettete Form. Im Grunde füllt der Benutzer das erste Formular aus und wird dann zu dem zweiten Formular umgeleitet, das den Daten des ersten Formulars einen Mehrwert hinzufügt. E.G. Ich habe einen Formular-Film (erstes Formular) und dann werde ich zu dem Formular (Schauspieler) weitergeleitet, das den Schauspieler zum Film hinzufügt.django createview wie man das Objekt, das erstellt wird,

in meinem Fall der Film = Chiamata und Schauspieler = Offerta (i halten den Italienern Name für das, was ich brauche: D)

in Ordnung.

das sind meine Urls im urls.py

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

Ich habe diese Ansicht erstellen

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

jetzt das Problem ist, wie ich die PK des vom chiamataForm erstellte Objekt bekommen . Ich brauche das, um es der URL von offerta_create hinzuzufügen.

Antwort

33

vielleicht könnten Sie get_success_url() Methode verwenden (see reference)

In diesem Fall würde es sein, so etwas wie:

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

yup es funktioniert 'def get_success_url (Selbst-): return reverse ('offerta_create', args = (self.object.id,))' – EsseTi

+0

@EsseTi Wenn ich versuche, 'zu verwenden self.object.id' den Weg das hast du, ich bekomme 'None' zurück, obwohl 'self.object' definitiv existiert und es in meiner Datenbank (MySQL) gespeichert wird. Irgendwelche Einblicke, warum das wäre? –

+1

nicht wirklich. Vielleicht ist es (noch) nicht gespeichert, also gibt es kein ID. Was passiert, wenn Sie versuchen, auf ein anderes Feld zuzugreifen? – EsseTi

Verwandte Themen