Столкновения полей в 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