Python __django范围为';行不通
我有一个像这样的范围:Python __django范围为';行不通,python,django,django-models,Python,Django,Django Models,我有一个像这样的范围: backwards = str(distance-10).split('.')[0] frontwards = str(distance+10).split('.')[0] route = Route.objects.filter(miles_from_warehouse__range=(backwards,frontwards)) 向后可以是一个简单的整数,如6 正面可为26; 我想要6-26范围内的所有数据 但是它什么也没有给我,而是当我用0代替6时;它给了我它。为
backwards = str(distance-10).split('.')[0]
frontwards = str(distance+10).split('.')[0]
route = Route.objects.filter(miles_from_warehouse__range=(backwards,frontwards))
向后可以是一个简单的整数,如6
正面可为26;
我想要6-26范围内的所有数据
但是它什么也没有给我,而是当我用0代替6时;它给了我它。为什么
miles_from_warehouse = models.CharField(max_length=120,default=None, blank=True, null=True)
您的
miles\u from\u warehouse
字段是CharField
。。。我不认为整数范围查询可以解决这个问题。您可能需要考虑改用浮点或整数字段;当我尝试使用0,26?时,因为当您在CharField上执行range
时,它会找到该范围内的所有字母数字字符。这与整数值不同;每次我运行python manage.py migrate时,它都会给我文件“/usr/local/lib/python2.7/site packages/django/db/models/fields/\uuuuuuuuu init\uuuuuuuuuuuuu.py”,第1760行,在get\u prep\u value return float(value)TypeError:float()参数必须是字符串或数字井,因为您的数据库中必须有无法转换为float的值!很可能是null
值,在这种情况下,您需要在float字段上设置null=True
。