[英]Model as a field of another model Django
我正在为网站设计支付系统,但遇到了麻烦。 一个人可以进行付款,并且该付款具有付款类型,例如借记卡、信用卡或 PayPal。 所以,我需要添加新的支付选项的可能性。 问题是我不知道如何链接这两个表,我知道我需要第三个表,其中只分配了payment_id
和payment_type_id
。 有没有办法用 Django 生成这个?
class PaymentType(models.Model):
"""Payment option available"""
name = models.CharField(unique=True, max_length=255)
created_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
def __str__(self):
return self.name
class Payment(models.Model):
class PaymentStatus(models.TextChoices):
DONE = '1', "DONE"
PENDENT = '2', "PENDENT"
CANCELED = '3', "CANCELED"
status = models.CharField(max_length=10,
choices=PaymentStatus.choices,
default=PaymentStatus.PENDENT)
# payment type
created_on = models.DateTimeField(auto_now_add=True)
您可以使用从Payment
类到PaymentType
类的ForeignKey字段来使用多对一关系。
Payment
类上的此字段:
payment_type = models.ForeignKey(PaymentType, null=False, blank=False, on_delete=models.CASCADE)
这将创建从Payment
到PaymentType
的关系。
在支付模型中添加一个字段名称“payment_type”并使用如下外键字段:
payment_type = models.ForeignKey(PaymentType, related_name="payments", on_delete=models.SET_NULL)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.