回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我的应用程序的用例是我将有不同类型的用户。它们是:</p>
<ul>
<li>代理人</li>
<li>代理</li>
<li>制造商</li>
</ul>
<p>他们有自己的特点。你知道吗</p>
<p>1<strong>用户</strong></p>
<p>2<strong>代理</strong></p>
<ul>
<li>身份证</li>
<li>名字</li>
<li>中间名</li>
<li>姓氏</li>
<li>出生日期</li>
<li>性</li>
<li>地址:
城市
街道
国家</li>
<li>手机号码</li>
<li>组织</li>
</ul>
<p>3机构</p>
<ul>
<li>身份证</li>
<li>姓名</li>
<li>地址:
城市
街道
国家</li>
<li>联系电话(可以添加多个号码)</li>
<li>电子邮件</li>
<li>增值税/税号</li>
</ul>
<p>4制造商</p>
<ul>
<li>身份证</li>
<li>姓名</li>
<li>地址:
城市
街道
国家</li>
<li>联系电话(可以添加多个号码)</li>
<li>电子邮件</li>
<li>增值税/税号</li>
</ul>
<p>[注:代理商有代理商。制造商可能是
与代理机构有关联或可以直接有代理机构。]你知道吗</p>
<p>为此,我以这样的方式设计了我的模型</p>
<pre><code>class Agency(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(
max_length=200,
blank=False,
null=False)
city = models.CharField(max_length=150, blank=False, null=False)
street = models.CharField(max_length=150, blank=True, null=True)
country = models.CharField(max_length=150, blank=True, null=True)
mobile_number = PhoneNumberField()
email = models.EmailField(blank=False, null=False)
vat_number = models.CharField(max_length=40, blank=False, null=False)
agent/models.py
class Agent(models.Model):
SEX_CHOICE = (
('male', 'Male'),
('female', 'Female'),
)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
agencies = models.ForeignKey(
Agency,
related_name="agents",
on_delete=models.CASCADE)
manufacturers = models.ForeignKey(
Manufacturer,
related_name="agents_manufacturer",
on_delete=models.CASCADE,
blank=True,
null=True)
first_name = models.CharField(
max_length=120,
blank=False,
null=False)
middle_name = models.CharField(
max_length=120,
blank=True,
null=True)
last_name = models.CharField(
max_length=120,
blank=False,
null=False)
date_of_birth = models.DateField(blank=True, null=True)
sex = models.CharField(max_length=6, choices=SEX_CHOICE)
city = models.CharField(max_length=150, blank=False, null=False)
street = models.CharField(max_length=150, blank=True, null=True)
country = models.CharField(max_length=150, blank=True, null=True)
mobile_number = PhoneNumberField()
</code></pre>
<p>制造商/型号.py地址:</p>
<pre><code>class Manufacturer(models.Model):
owner = models.ForeignKey(
User, on_delete=models.CASCADE, related_name="manufacturer")
agency = models.ForeignKey(
Agency,
blank=True,
null=True,
related_name="agency_manufacturer",
on_delete=models.CASCADE)
name = models.CharField(
max_length=200,
blank=False,
null=False)
city = models.CharField(max_length=150, blank=False, null=False)
street = models.CharField(max_length=150, blank=True, null=True)
country = models.CharField(max_length=150, blank=True, null=True)
mobile_number = PhoneNumberField()
email = models.EmailField(blank=False, null=False)
vat_number = models.CharField(max_length=40, blank=False, null=False)
</code></pre>
<p>我使用了django rest auth进行身份验证。当我转到<code>/rest-auth/registration</code>像username,password1,password2这样的字段就会出现。但是我需要哪种类型的用户,他/她也是。我如何处理这种情况?因为,用户应该能够以代理或代理或制造商的身份登录。有人能帮我吗?你知道吗</p>