Django的CreateView的如何让所创建的对象(django createview how

2019-07-03 17:02发布

我两个级联的形式。 基本上用户填写在第一表格,然后被重定向到第二个这增加值到所述第一形式数据。 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'),

我已经这个创建视图

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

现在的问题是我怎么可以得到由chiamataForm创建的对象的PK。 我需要将其添加到offerta_create的网址。

Answer 1:

也许你可以使用get_success_url()方法( 见参考文献 )

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

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


Answer 2:

请参阅接受的答案,为什么不以CreateView的保存到数据库后self.object有一个id? - 一旦我从模型去掉了“ID”字段,并让Django的默认对每个模型自身的ID下拉列表AutoField在这个问题的答案建议,self.object.id在我CreateView的工作得很好。



文章来源: django createview how to get the object that is created