【发布时间】:2015-06-15 22:23:35
【问题描述】:
我正在尝试使用 ETAG HTTP 标头发送 304 NOT MODIFIED 响应。使用如下代码:
class MyView(GenericAPIView):
serializer_class = MySerializer
@condition(etag_func=get_language_etag)
def get(self, request, *args, **kwargs):
return Response(self.get_cached_response())
问题在于get方法的'self'参数。这将 @condition 生成器方法中的参数打乱了,这里是条件方法的开头:
def condition(etag_func=None, last_modified_func=None):
def decorator(func):
@wraps(func, assigned=available_attrs(func))
def inner(request, *args, **kwargs):
现在“self”被分配给请求,实际的请求最终在 *args 中。
有人对装饰器及其预期的参数顺序有类似的问题吗?
【问题讨论】:
标签: python django python-2.7 django-rest-framework etag