我整个下午都在努力尝试将变量传递给get_success_url,以便在处理UpdateView之后显示正确的记录。我正在使用基于类的视图,并且试图更新记录,然后在其他视图中显示相应的更新记录。但是,当我传递pk时,它可以工作,但不是正确的。
本质上,这是有问题的代码...
def get_success_url(self):
return reverse_lazy('Book:create_new_author_detail', kwargs={ 'pk' : self.object.pk })
上面的方法在很多情况下都可以正常工作。但是,在这种情况下,我试图传递与该特定updateview不匹配的特定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。
预先感谢您的任何想法。
答案 0 :(得分:0)
我想一晚上睡个好觉...
这就是我想出来的.....
def get_success_url(self):
book= Author.objects.filter(author_id=self.object.pk).first()
return reverse_lazy('Author:author_view', kwargs={ 'pk' : book.pk })