44

我有两个连接的形式。基本上,用户填写第一个表单,然后被重定向到第二个表单,这为第一个表单的数据增加了价值。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 的 url。

4

2 回答 2

63

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

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

def get_success_url(self):
    return reverse('offerta_create',args=(self.object.id,))
于 2012-11-09T14:50:41.537 回答
0

请参阅已接受的答案,为什么 CreateView 中的 self.object 在保存到数据库后没有 id?- 一旦我从我的模型中删除了“id”字段,并按照该答案中的建议让 Django 在每个模型上默认为其自己的 id AutoField,self.object.id 在我的 CreateView 中运行良好。

于 2015-03-02T15:44:13.497 回答