django createview如何获取创建的对象

Ess*_*eTi 35 django create-view django-class-based-views

我有两个连接的形式.基本上用户填写第一种形式,然后重定向到第二种形式,这增加了第一种形式的数据的价值.EG我有一个表单电影(第一个表单)然后我被重定向到表单(演员),它将演员添加到电影中.

在我的情况下,电影= Chiamata和演员= Offerta(我保留意大利人的名字,我需要:D)

精细.

这些是我在urls.py中的网址

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

我创建了这个视图

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

现在问题是如何获得chiamataForm创建的对象的PK.我需要将它添加到offerta_create的url中.

小智 46

也许你可以使用get_success_url()方法(参见参考资料)

在这种情况下,它是这样的:

def get_success_url(self):
    return reverse('offerta_create',args=(self.object.id,))
Run Code Online (Sandbox Code Playgroud)

  • 是的,它的工作原理是`def get_success_url(self):return reverse('offerta_create',args =(self.object.id,))` (6认同)