gpt4 book ai didi

Django 查询集 : Is it possible to filter for field__is_null for FloatFields?

转载 作者:行者123 更新时间:2023-12-03 10:29:01 27 4
gpt4 key购买 nike

我希望能够查询一个模型以获取对于特定浮点字段没有值的记录。问题是基本查询:

 Model.objects.filter(float_field__is_null=True)

返回以下错误: django.core.exceptions.FieldError: Unsupported lookup 'is_null' .

要进行测试,请创建以下模型:
class FloatFieldModel(models.Model):
date = models.DateField()
val = models.FloatField(blank=True, null=True)

然后:
>>> objects = FloatFieldModel.objects.filter(val__is_null=True)
>>> django.core.exceptions.FieldError: Unsupported lookup 'is_null' ...

如何过滤模型以查找特定浮点字段没有值的记录?换句话说,最好的工作是什么?

我想要做的是设置一个例程,只更新没有任何值的行,但跳过那些已经具有指定值的行(同时最有效地利用我的数据库)。我正在尝试的东西看起来像:
for date in dates:
try:
FloatFieldModel.objects.filter(
date=date,
val__is_null=True
).update(val=42.0)
except FloatFieldModel.DoesNotExist:
pass

我想我可以做这样的事情:
objects = FloatFieldModel.objects.all()
for obj in objects:
if obj.val is None and obj.date in set(dates):
obj.val = 42.0
obj.save()

不过,我正在尝试一个更有效的过程,而不是在保存之前需要将数据库中的每个对象读取到内存中。

最佳答案

有查找isnull 不是 is_null https://docs.djangoproject.com/en/dev/ref/models/querysets/#std:fieldlookup-isnull

Model.objects.filter(float_field__isnull=True)

关于Django 查询集 : Is it possible to filter for field__is_null for FloatFields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27002564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com