【发布时间】:2020-07-16 10:33:25
【问题描述】:
我在 django 中使用扩展用户模型进行身份验证时遇到问题。 我希望用户使用客户编号、用户名和密码进行身份验证。
这是我的模型:
class Mandant(models.Model):
Mandant_id = models.AutoField('ID', primary_key= True)
Mandant_accn= models.CharField('Kundennummer', max_length=10)
Mandant_name = models.CharField('Bezeichnung', max_length=200)
Mandant_street = models.CharField('Straße', max_length=200, null=True, blank=True)
Mandant_zip = models.CharField('PLZ', max_length=10, null=True, blank=True)
Mandant_city = models.CharField('Ort', max_length=200, null=True, blank=True)
Mandant_iban = models.CharField('IBAN', max_length=200, null=True, blank=True)
Mandant_bic = models.CharField('BIC', max_length=200, null=True, blank=True)
Mandant_ustid = models.CharField('UstID', max_length=200, null=True, blank=True)
Mandant_vf = models.DateTimeField('Gültig von', default=now)
Mandant_vu = models.DateTimeField('Gültig bis', null=True, blank=True)
Mandant_ia = models.DateTimeField('Hinzugefügt am', auto_now=True)
Mandant_deleted = models.BooleanField('Gelöscht', default=False)
def __str__(self):
return self.Mandant_name
class Meta:
app_label ="meas"
ordering = ['Mandant_ia']
class Meas_User(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
mandant_id = models.ForeignKey(Mandant, on_delete=models.CASCADE)
我在 Meas_User 模型中使用 onetoonefield 扩展了 django 默认用户模型。
现在我尝试为我的应用用户编写登录视图。 但我不知道如何在下面的 SQL 语句中进行查询
SELECT User, Mandant FROM [User] INNER JOIN (Mandant INNER JOIN MEAS_user ON Mandant.Mandant_ID = MEAS_user.Mandant_ID) ON User.ID = MEAS_user.user_ID WHERE (((User.username)="lorem Ipsum") AND ((Mandant.Customer_Number)="1234"));
我尝试了 select_related() 函数,但没有成功。 我想要的结果是让授权的用户(由输入的客户编号识别)(如果适用)在下一步检查输入的密码。
【问题讨论】:
标签: python sql django django-models django-views