I have 4 models: company, store, product and stock. The stock model has 3 ForeignKey to the other models and I need that the same product can only be inserted once in a company's store when a stock is created.
Models:
class Company(models.Model):
    owner = models.OneToOneField(User, on_delete=models.CASCADE, related_name='company')
    name = models.CharField(max_length=150, unique=True, null=False)
    type_choices = [('Retailer', 'Retailer'), ('Provider', 'Provider')]
    type = models.CharField(choices=type_choices, max_length=12, null=False)
    dropshipping = models.BooleanField(default=False)
    city = models.CharField(max_length=24, null=False)
    postal_code = models.IntegerField(null=False)
    address = models.CharField(max_length=256, null=False)
    phone = models.CharField(max_length=24, null=False)
    is_active = models.BooleanField(default=False)
    date_created = models.DateTimeField(default=timezone.now)
    def __str__(self):
        return self.name
class Store(models.Model):
    location = models.CharField(max_length=100, null=False)
    company = models.ForeignKey(Company, on_delete=models.CASCADE, related_name='store_owner')
    def __str__(self):
        return self.location
class Product(models.Model):
    name = models.CharField(max_length=256, unique=True, null=False)
    brand = models.CharField(max_length=128, null=False)
    date_added = models.DateTimeField(default=timezone.now)
    image = models.ImageField(upload_to = 'static/img/')
    def __str__(self):
        return self.name
class Stock(models.Model):
    price = models.DecimalField(max_digits=8, decimal_places=2, null=False)
    quantity = models.IntegerField(null=False)
    product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='product_stock')
    company = models.ForeignKey(Company, on_delete=models.CASCADE, related_name='company_stock')
    store = models.ForeignKey(Store, on_delete=models.CASCADE, related_name='store_stock')
How can I achieve this?
