Ответ 1
Возможно, вы могли бы использовать метод get_success_url()
(см. ссылку)
В этом случае это будет что-то вроде:
def get_success_url(self):
return reverse('offerta_create',args=(self.object.id,))
У меня две конкатенированные формы. В основном пользователь заполняет первую форму, а затем перенаправляется во вторую, которая добавляет значение к данным первой формы. НАПРИМЕР. У меня есть форма Movie (первая форма), а затем я перенаправлен на форму (актер), которая добавляет актера в фильм.
в моем случае Movie = Chiamata и Actor = Offerta (я сохраняю название italians для того, что мне нужно: 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=(??,))
теперь проблема в том, как я могу получить PK объекта, созданного chiamataForm. Мне нужно, чтобы добавить его в URL-адрес offerta_create.
Возможно, вы могли бы использовать метод get_success_url()
(см. ссылку)
В этом случае это будет что-то вроде:
def get_success_url(self):
return reverse('offerta_create',args=(self.object.id,))
Пожалуйста, см. принятый ответ Почему у self.object в CreateView нет идентификатора после сохранения в базе данных? - как только я удалил "id" поля из моих моделей, и пусть Django по умолчанию имеет свой собственный идентификатор AutoField для каждой модели, как рекомендовано в этом ответе, self.object.id отлично работал в моем CreateView.