template linebreaksbr examples bootstrap django django-class-based-views create-view

linebreaksbr - django createview cómo obtener el objeto que se crea



linebreaksbr django (2)

Consulte la respuesta aceptada en ¿Por qué self.object en CreateView no tiene una ID después de guardarla en la base de datos? - una vez que eliminé los campos "id" de mis modelos, y dejé que Django adoptara por defecto su propia Id. AutoField en cada modelo, como se recomendaba en esa respuesta, self.object.id funcionó bien en mi CreateView.

Tengo dos formas concatenadas. Básicamente, el usuario rellena el primer formulario y luego se redirige al segundo, lo que agrega valor a los datos del primer formulario. EG Tengo una película de forma (primer formulario) y luego me redirigen a la forma (actor) que agrega el actor a la película.

en mi caso, la Película = Chiamata y Actor = Offerta (guardo el nombre de los italianos para lo que necesito: D)

multa.

esas son mis urls en las urls.py

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

He creado esta vista

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

ahora el problema es cómo puedo obtener el PK del objeto creado por chiamataForm. Necesito eso para agregarlo a la url de offerta_create.


tal vez podrías usar el método get_success_url() ( ver referencia )

En este caso, sería algo así como:

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