Skip to content
Advertisement

How to filter out objects that do not have a relationship with another form in Django?

I have two samples in an application built using Django:

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

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

I want to filter out all users who don’t have any products in the store.

How do I do this?

Advertisement

Answer

This seems the simplest:

user_ids_with_product = [product.user_id for product 
                         in Product.objects.all()]
Users.objects.exclude(id__in=user_ids_with_product)

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement