Accessing a foreign key's base classes's fields in UniqueConstraint

In the UniqueConstraint for personality -> language, I'm getting the error FieldDoesNotExist

For example, if my code looked like this:

class LanguageModel(models.Model):
    language = models.CharField(
        max_length=16,
        default="en",
    )

    class Meta:
        abstract = True

class PersonModel(LanguageModel):
    created_at = models.DateTimeField(editable=False, auto_now_add=True)
    updated_at = models.DateTimeField(editable=False, auto_now=True)

    class Meta:
        managed = True
        db_table = "PersonModel"

class CollectionofPeople(models.Model):
    id = models.UUIDField(primary_key="True", default=uuid.uuid4, editable=False)
    created_at = models.DateTimeField(editable=False, auto_now_add=True)
    updated_at = models.DateTimeField(editable=False, auto_now=True)

    is_default = models.BooleanField(default=False)

    personality = models.ForeignKey(
        "PersonModel",
        null=True,
        on_delete=models.CASCADE,
    )

    class Meta:
        managed = True
        db_table = "CollectionofThings"
        constraints = [
            models.UniqueConstraint(
                fields=["personality__language", "id"],
                name="unique_personality_language",
            )
        ]

Is it possible to access the personality language in a UniqueConstraint? Or more generally, can I access a foreign key's abstract base class's field?

Вернуться на верх