因此,我试图创建一个代理装饰器,您将其传递给一个帮助器,以便可以在多个django视图中使用它。
所以代理工作正常,但是如果我不希望它代理并运行视图,则会发生回溯:TypeError:post()缺少1个必需的位置参数:'self'。
self.cbUnit.addItems(["unit 1", "unit 2", "cm-1"])
我装饰了django视图。
class HttpLocalProxy(object):
def proxy(self, *args):
if self.proxy_helper.should_proxy(self._get_request_object(*args)):
<do proxy stuff>
return self.fn(request=*args)
def __init__(self, proxy_helper: ProxyInterface) -> None:
self.proxy_helper: ProxyInterface = proxy_helper
def __call__(self, fn) -> typing.Callable:
self.fn: typing.Callable = fn
return self.proxy
这是因为我没有该类的实例来运行帖子。我测试了该理论,并可以创建一个实例并将其与args一起传递回来,但它不一定总是同一视图类,因此我需要将其传递给我。
我无法将其自身的实例创建为类变量并将其与帮助程序一起传递,这样我就被卡住了。
我觉得可能有一个简单的解决方案,但目前看不到。
谢谢