扭曲 render_GET 重定向到函数

twisted render_GET redirect to function

我似乎找不到任何关于如何使用 twisted.web.util.Redirect 重定向到另一个函数的文档。

有关详细信息,请参阅下文。

我有以下代码:

class Login(Resource):
    isLeaf = True
    def getChild(self, name, request):
        if name == '':
            return self
        return Resource.getChild(self, name, request)

    def render_GET(self, request):
        saml = SamlRequest(request)
        print('redirecting to sso')
        return Redirect(saml.sso())

class SamlRequest(object):
    self.auth = OneLogin_Saml2_Auth(self.request, custom_base_path=settings_path)


    def sso(self):
        return self.auth.login()

我需要重定向到页面登录到OneLogin_Saml2_Auth里面的登录功能。

当我尝试按原样重定向时收到错误

raise TypeError("Unicode object not allowed as URL")

有没有办法做到这一点?

twisted.web.util.Redirect 是一种资源,而不是您通过 render 方法 return 得到的东西。如果您的 URL 结构中存在 "static" 重定向并重定向到固定位置,则最适合。

如果您想编写重定向到动态 URL 的自定义资源,请使用 twisted.web.util.redirectTo(url, request),您 可以 从 [=13] 调用它=] 方法就像您尝试使用 Redirect.