Столкновения полей в django orm

У меня есть некоторые проблемы с Django ORM. У меня есть три класса:

transaction.py

class Transaction(models.Model):

    class Status(models.TextChoices):
        PENDING = 'Pending'
        PROCESSING = 'Processing'
        CHARGED = 'Charged'
        AUTHORIZED = 'Authorized'
        CANCELLED = 'Cancelled'
        REJECTED = 'Rejected'
        ERROR = 'Error'
        ISSUED = 'Issued'

    amount = models.DecimalField(max_digits=6, decimal_places=2)  # in USD
    status = models.CharField(
        max_length=15,
        choices=Status.choices,
        default=Status.PROCESSING,
    )
    created_at = models.DateTimeField()
    updated_at = models.DateTimeField()
    from_account = models.CharField(max_length=16)
    to_account = models.CharField(max_length=16)

payments.py

class Payment(Transaction):
    order = models.ForeignKey(Order, on_delete=models.CASCADE)

    def __str__(self):
        return f"Payment {super().__str__()}"


class Refund(Payment):
    payment = models.ForeignKey(
        Payment,
        on_delete=models.CASCADE,
        related_name='parent_payment'
    )

    def __str__(self):
        return f"Refund payment={self.payment.id} {super(Transaction, self).__str__()}"

Когда я пытаюсь выполнить миграцию, у меня возникает эта ошибка

SystemCheckError: System check identified some issues:

ERRORS:
booking.Refund.payment: (models.E006) The field 'payment' clashes with the field 'payment' from model 'booking.transaction'.

Как я понимаю, проблема связана с наследованием и его спецификой в ORM, но я не уверен

просто добавьте его


class Meta:
abstract = True
Вернуться на верх