In a Django QuerySet, how to filter for “not exists” in a many-to-one relationship

后端 未结 7 1912
失恋的感觉
失恋的感觉 2020-12-23 19:23

I have two models like this:

class User(models.Model):
    email = models.EmailField()

class Report(models.Model):
    user = models.ForeignKey(User)
         


        
7条回答
  •  粉色の甜心
    2020-12-23 19:27

    Use isnull.

    users_without_reports = User.objects.filter(report__isnull=True)
    users_with_reports = User.objects.filter(report__isnull=False).distinct()
    

    When you use isnull=False, the distinct() is required to prevent duplicate results.

提交回复
热议问题