首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在django中,如何在基于类的泛型视图中重定向到?next=url而不是success_url?

在Django中,可以通过重写基于类的泛型视图中的get_success_url方法来实现重定向到?next=url而不是success_url

首先,需要导入django.shortcuts.redirect模块,然后在视图类中重写get_success_url方法。在该方法中,可以通过self.request.GET.get('next')获取到?next=url中的url参数,并将其作为重定向的目标。

以下是一个示例代码:

代码语言:txt
复制
from django.shortcuts import redirect
from django.views.generic import CreateView
from django.urls import reverse_lazy

class MyCreateView(CreateView):
    model = MyModel
    # 其他视图配置...

    def get_success_url(self):
        next_url = self.request.GET.get('next')
        if next_url:
            return next_url
        else:
            return reverse_lazy('success_url_name')

在上述示例中,MyCreateView是一个继承自CreateView的自定义视图类。在get_success_url方法中,首先使用self.request.GET.get('next')获取到?next=url中的url参数,如果存在则返回该参数作为重定向的目标,否则返回success_url的名称(通过reverse_lazy函数获取对应的URL)。

这样,在使用MyCreateView视图类创建对象成功后,如果URL中存在?next=url参数,则会重定向到该参数指定的URL,否则会重定向到success_url指定的URL。

希望以上信息对您有所帮助。如果您需要了解更多关于Django的知识或其他云计算领域的问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券