python - Django QuerySet,当值为空时删除数据
问题描述
我想问一下当属性的值为空时如何从 QuerySet 中删除数据。
模型.py:
class RnDProject(models.Model):
name = models.CharField(max_length=100)
class Yhrtaskgrp(models.Model):
employee_name = models.CharField(max_length=100)
employee_id = models.CharField(max_length=10)
hours_worked = models.FloatField()
assigned_RnD = models.ForeignKey(RnDProject, on_delete=models.SET_NULL)
视图.py:
class RndView(APIView):
def get(self, request):
qs = Yhrtaskgrp.objects.values('employee_name', 'employee_id').annotate(rnd_hours=Sum('hours_worked', filter=Q(assigned_RnD_id__isnull=False)), all_hours=Sum('hours_worked'))
return Response(qs)
当 ForeingKey 为空时,来自 qs 的对象可能如下所示:
{
"employee_id": "123456",
"employee_name": "John Doe",
"rnd_hours": null,
"all_hours": 20
}
我想rnd_hours == null
从 QuerySet 中删除所有对象。无论如何,django 是如何丢弃这些对象的?
解决方案
正如 Vishal Singh 在评论中提到的那样,我必须将 .exclude(rnd_hours__isnull=True) 添加到 qs。
推荐阅读
- reactjs - 如何在 React 的 Apex 图表中定义自定义工具提示?
- android - 使用 SQLite 数据库启动应用程序时出现 NullPointerException
- .net-framework-version - 使用命令行更改 .net 框架构建引擎版本
- questdb - 如何从 OSGi 包加载 QuestDB 函数?
- c - C语言中自身的Typedef Struct
- react-native - React Native fetch() 函数给出 SyntaxError: Unexpected end of JSON input
- c# - 在 LaunchMode = SingleTop 的 Xamarin 应用程序中未执行深度链接“OnAppLinkRequestReceived”方法
- intellisense - ev3 micropython 中的 Intellisense 无法正常工作
- python - AttributeError:“numpy.ndarray”对象没有属性“fromarray”
- odoo-13 - Odoo13中制造模块与会计的关系?