【发布时间】:2019-10-31 13:49:09
【问题描述】:
我整个下午都在努力尝试在处理 UpdateView 后将变量传递给 get_success_url 以显示正确的记录。我正在使用基于类的视图,我正在尝试更新记录,然后在不同的视图中显示相应的更新记录。但是,当我通过 pk 时,它可以工作,但不是正确的。
基本上,这里是有问题的代码......
def get_success_url(self):
return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk })
上述方法可以正常工作,并且在许多情况下都可以。但是,在这种情况下,我试图传递与此特定更新视图不一致的特定 pk。
我尝试过类似....
def get_success_url(self):
return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.new_author.pk })
也许像....
def get_success_url(self):
return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk, 'new_author' : self.new_author.id })
可以吗?我可以使用此代码获取 pk,但不是正确的。我想引用 new_author.id 以便 reverse_lazy 选择正确的 pk。
提前感谢您的任何想法。
【问题讨论】:
-
如果对象具有 new_author,
return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.new_author.pk })应该可以工作,但return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk, 'new_author' : self.new_author.id })将不起作用,因为视图没有任何名为new_author的属性
标签: django django-models django-forms django-templates django-views