[Python] Accessing a foreign key's base classes's fields in UniqueConstraint

Discussão em 'Python' iniciado por Stack, Março 21, 2025.

  1. Stack

    Stack Membro Participativo

    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)
    name = models.CharField(max_length=32)
    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", "name"],
    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?

    Continue reading...

Compartilhe esta Página