[英]Field clashes in django orm
我對 Django ORM 有一些問題。 我有三個班級:
交易.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)
付款.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'.
據我了解與 inheritance 相關的問題及其在 ORM 中的具體問題,但我不確定
只需添加它
class Meta:
abstract = True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.