Django QuerySet,当value为null时删除数据



我想问一下,当属性的值为null时,我如何从QuerySet中删除数据。

Models.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)

views.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为null时,qs中的对象看起来像这样:

{
"employee_id": "123456",
"employee_name": "John Doe",
"rnd_hours": null,
"all_hours": 20
}

我想从QuerySet中删除所有具有rnd_hours == null的对象。django是否有办法删除这些对象?

正如Vishal Singh在评论中提到的,我不得不在qs中添加。exclude(rnd_hours__isnull=True)。

相关内容

  • 没有找到相关文章

最新更新