Rya*_*ley 5 django django-models django-admin
我需要帮助才能正确设置模型.说我有三个型号:
帐户和所有者是多对多的,因此:
class Account(models.Model):
number = models.CharField(max_length=10)
class Owner(models.Model):
account = models.ManyToManyField(Account)
fullName = models.TextField()
Run Code Online (Sandbox Code Playgroud)
然后,"AccountOwner"可以进行许多交易.所以,如果我和我的妻子拥有相同的帐户,我可以为t进行多次交易,她可以.
我第一次尝试交易模型:
class Transaction(models.Model):
#Does not work - Could pick account owner is not on
account = models.ForeignKey(Account)
owner = models.ForeignKey(Owner)
title = models.CharField('title', max_length=50)
Run Code Online (Sandbox Code Playgroud)
两个外键不起作用.我在account_owner表上需要一个外键.我可以在不创建实际的account_owner模型的情况下执行此操作吗?
感谢您的时间
实际上你已经创建了account_owner模型.它在代码中是不可见的,但它是存在的.您可以使其可见并through在M2M字段中使用参数:
class Owner(models.Model):
accounts = models.ManyToManyField(Account, through='OwnerAccount')
fullName = models.TextField()
class OwnerAccount(models.Model):
owner = models.ForeignKey(Owner)
account = models.ForeignKey(Account)
class Transaction(models.Model):
owner_account = models.ForeignKey(OwnerAccount)
title = models.CharField('title', max_length=50)
Run Code Online (Sandbox Code Playgroud)
您仍然可以Owner.accounts像往常一样访问您的2-many-many字段.那么你将调用owner.acounts.add(some_account)相应的OwnerAccount实例将自动创建.
| 归档时间: |
|
| 查看次数: |
4838 次 |
| 最近记录: |