我在记录kwargs和args时遇到TypeError。下面是我用来记录kwargs的Django视图类的基类。你知道吗
class CustomAPI(APIView):
_url = None
def initial(self, request, *args, **kwargs):
logger.info("Request: %s, Args: %s, Kwargs: %s" % (request.__dict__, str(*args), str(**kwargs)))
CustomAPI._url = request.get_full_path()
super(CustomAPI, self).initial(request, *args, **kwargs)
错误日志显示以下错误-
File "path/to/app/api_common.py", line 55, in initial logger.info("Request: %s, Args: %s, Kwargs: %s" % (request.dict, str(*args), str(**kwargs))) TypeError: 'id' is an invalid keyword argument for this function
str(**kwargs)有问题吗?你知道吗
目前,您有
str(**kwargs)
。如果kwargs
是{'id': '5'}
,这相当于str(id=5)
,这会引发TypeError
,因为str
不接受id
。你知道吗如果需要
kwargs
dict的字符串表示,请使用:类似地,如果
len(args) > 1
,则str(*args)
将给出一个TypeError。您应该使用:或者可以在方法中传递id
应该通过方法的
self.kwargs
而不是kwargs
访问参数。你知道吗Django实际上并没有直接调用您的方法。由于它动态地创建类实例,
kwargs
不像在基于函数的视图中那样被访问。DRF视图只是Django通用视图,因此规则也适用于它们。你知道吗相关问题 更多 >
编程相关推荐