使用以下型号:
class Event(models.Model):
latitude = models.FloatField()
longitude = models.FloatField()
我想执行以下逻辑:
选择纬度在范围(float1,float2)或范围(float3,float4)内的所有事件
在sql中如下所示:
SELECT * FROM event WHERE latitude (BETWEEN float1 and float2) or latitude (BETWEEN float3 and float4);
我在django中尝试了这个方法,但是得到了一个“syntaxerror:关键字参数repeated”:
Events.objects.filter(latitude__range=(float1, float2), latitude__range=(float3, float4)
3条答案
按热度按时间voase2hg1#
使用q()| q()
参见文档https://docs.djangoproject.com/zh-hans/2.2/topics/db/queries/#complex-使用q对象查找
jaxagkaj2#
如果您想保持您提到的更好的可读性,请尝试以下操作:
dohp0rv53#
错误是因为
fieldName
介于值1之间AND
value2是唯一语法。实际上你不需要加括号:如果要添加括号以提高可读性,可以添加如下内容: