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'),

у меня есть этот create view

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

теперь проблема в том, как я могу получить ПК объекта, созданного chiamataForm. Мне нужно, чтобы добавить его в url-адрес offerta_create.

2 ответов


может быть, вы могли бы использовать get_success_url() метод (см. ссылку)

в этом случае, это будет что-то вроде:

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

пожалуйста, смотрите принятый ответ на почему не себя.объект в CreateView имеет ID после сохранения данных? - Как только я удалил поля " id " из своих моделей и позволил Django по умолчанию использовать свое собственное поле id для каждой модели, как рекомендовано в этом ответе, self.объект.id отлично работал в моем CreateView.