我想创建一个模型,其中用户拥有多家公司的一定数量的股份。看起来我应该使用Django中间模型关系,但我不确定如何将中间模型应用于内置的Django用户模型。
目前,公司与股东(用户)之间存在ManyToMany关系,如何为每个特定的公司 - 股东关系增加股数?
class Company(models.Model):
name = models.CharField(max_length=200)
shareholder = models.ManyToManyField(User, blank=True)
答案 0 :(得分:0)
您可以使用带有直通属性的多对多字段
[XmlRoot("items")]
public class StreamingEvents
{
[XmlElement("item")]
public List<Event> Events { get; set; }
}
答案 1 :(得分:0)
我就是这样做的:
from django.db import models
from django.contrib.auth.models import User
class Shareholder(models.Model):
name = models.CharField(max_length=128)
user = models.OneToOneField(to=User, related_name='shareholder_profile')
def __str__(self):
return self.name
class Company(models.Model):
name = models.CharField(max_length=128)
shareholders = models.ManyToManyField(Shareholder, through='Shareholding')
def __str__(self):
return self.name
class Shareholding(models.Model):
shareholder = models.ForeignKey(Shareholder, on_delete=models.CASCADE)
company = models.ForeignKey(Company, on_delete=models.CASCADE)
date_shares_purchased = models.DateField()
number_of_shares = models.PositiveIntegerField()
我不会直接使用用户模型,而是创建一个与用户具有一对一关系的股东模型。然后,我将与股东中间模型建立股东和公司之间的多对多关系。
更详细地介绍了使用与Profile模型一对一关系扩展用户模型的技术