Как решить проблему с ограничением FOREIGN KEY? DJANGO

У меня проблема с FK, и я не знаю, проблема ли это с миграциями или со схемой. Ниже приведены модели моей электронной коммерции. Где есть два типа пользователей, Клиенты и Супермаркеты. Каждый тип может принимать только одну роль. И каждый супермаркет может иметь несколько продуктов. Ошибка возникает, когда я связываю супермаркет с продуктом. В моей диаграмме есть ошибка

products/models.py

class Categoria(models.Model):
    nome = models.CharField(max_length=50)

    def __str__(self):
        return self.nome


class Produto(models.Model):
    name = models.CharField(max_length=70)
    price = models.FloatField()
    qnt_stock = models.IntegerField()
    sold = models.IntegerField()
    category = models.ForeignKey(Categoria, on_delete=models.CASCADE)
    description = models.TextField(default="", blank=True, null=True)
    slug = models.SlugField(unique=True)
    image = models.ImageField(upload_to="products/%Y/%m/%d", blank=True, null=True)
    expiration_date = models.DateTimeField(null=True, blank=True)
    supermarket = models.ForeignKey(
        Lojista, on_delete=models.CASCADE, blank=True, null=True
    )

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("produtos:produto_detail", kwargs={"slug": self.slug})

users/models.py

class CustomUser(AbstractUser):
    class Role(models.TextChoices):
        SUPERMARKET = "SUPERMARKET", _("Supermarket")
        CLIENT = "CLIENT", _("Client")

    role = models.CharField(max_length=50, choices=Role.choices)

    def __str__(self):
        return self.username


class Client(models.Model):
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, primary_key=True)

    def __str__(self):
        return self.user.username


class Lojista(models.Model):
    def upload_photo_to(instance, filename):
        return f"brand/{instance.name}/{filename}"

    supermarket = models.OneToOneField(
        CustomUser, on_delete=models.CASCADE, primary_key=True
    )
    brand = models.ImageField(upload_to=upload_photo_to, blank=True, null=True)
    cep = BRPostalCodeField()
    state = models.CharField(choices=br_states.STATE_CHOICES, max_length=2, null=False)
    city = models.CharField(max_length=128, null=False)
    district = models.CharField(max_length=128, null=True)
    street = models.CharField(max_length=128, null=True)

    def __str__(self):
        return f"{self.supermarket.username} - {self.street}, {self.district} - {self.city}/{self.state}"

ERROR:

IntegrityError at /admin/produtos/produto/2/change/
FOREIGN KEY constraint failed
Вернуться на верх