在Django的UpdateView中,我们可以通过重写get_success_url()
方法来设置success_url重定向回与UpdateView中引用的模型不同的模型。
首先,我们需要引入reverse
函数和要重定向到的模型的DetailView
视图。
from django.urls import reverse
from django.views.generic import DetailView
接下来,在UpdateView的子类中,重写get_success_url()
方法。我们可以根据需要获取引用的模型的实例,然后使用reverse()
函数根据模型实例的属性生成重定向URL。最后,我们可以将URL作为返回值。
class YourUpdateView(UpdateView):
model = YourModel
form_class = YourForm
def get_success_url(self):
# 获取引用的模型实例
instance = self.object.your_foreign_key_field
# 生成重定向URL
success_url = reverse('your_detail_view', kwargs={'pk': instance.pk})
return success_url
在上面的代码中,your_foreign_key_field
是UpdateView引用模型中的外键字段。your_detail_view
是与重定向模型关联的DetailView的名称。
请注意,上述代码中的YourModel
是您使用的实际模型,YourForm
是用于更新模型实例的表单。
这样,当在UpdateView中成功更新模型实例时,将重定向到与UpdateView中引用的模型不同的模型的详细视图。
推荐的腾讯云产品:腾讯云云服务器(CVM)和腾讯云数据库 MySQL。您可以在腾讯云官方网站了解更多关于这些产品的详细信息:
请注意,这些推荐的产品仅供参考,您可以根据具体需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云