首页 > 解决方案 > 位置参数遵循 Django ORM 查询中的关键字参数问题

问题描述

user=kwargs['user']

Emp.objects.filter(country="England",Q(euser=user)|Q(muser=user),dep="sample").order-by('-date')

抛出错误

 positional argument follows keyword argument issue in Q(euser=user)|Q(muser=user)

标签: pythondjangodjango-rest-framework

解决方案


根据 Python 语法,位置参数必须在关键字参数之前传递。country=...是关键字参数,Q(...)不是。这甚至在文档中明确提到:

查找函数可以混合使用Q对象和关键字参数。提供给查找函数的所有参数(无论是关键字参数还是Q对象)都是“与”在一起的。但是,如果Q提供了一个对象,它必须在任何关键字参数的定义之前。


推荐阅读