我试图弄清楚如何生成一对多关系(即“一个模型到另一个模型的对象列表”),而不必在子模型上使用外键。我想实现这一点,因为孩子应该不知道家长有一个通用的应用程序。你知道吗
示例:
class Payment(models.Model):
lease = models.ForeignKey('leaseapp.Lease')
created_at = models.DateTimeField(auto_now_add=True)
amount = models.IntegerField()
以及我的其他应用程序:
class Lease(models.Model):
leaserholder = models.CharField(max_length=300)
现在我想一个租赁有多个付款,但没有使我的付款模式具体到我的租赁应用程序,它应该可以在其他应用程序以及使用。你知道吗
这里的最佳实践是什么?你知道吗
您可以使用
GenericForeignKey
实现这一点。为此,您需要支付模型上的content_type
、object_id
和content_object
属性。你知道吗然后你可以这样创建一个租赁付款。这适用于任何型号。因此,如果您创建一个
Fee
模型,您也可以为此创建支付注意:这需要安装
django.contrib.contenttypes
,这在大多数django应用程序中是默认的。更多信息check out the docs page on contenttypes看起来像是泛型关系。参见:here到django文档。通用外键和关系有时会在以后的开发过程中引起问题,但您也可以考虑:
至少
优点:背后没有魔法,数据库模型也很清晰。你知道吗
相关问题 更多 >
编程相关推荐