我正在尝试过滤我的外键并获得PhoneOtp模型的查询集。
class User(AbstractBaseUser,PermissionsMixin):
phone_regex=RegexValidator(regex = r'^[6-9]\d{9}$',message='please enter the correct phonenumber')
phone=models.CharField(validators=[phone_regex],max_length=15,unique=True)
name=models.CharField(max_length=15,blank=True)
class PhoneOtp(models.Model):
phone = models.ForeignKey(User,on_delete=models.CASCADE,default=None)
otp = models.CharField(max_length=9,blank=True,null=True)
以上是我的两个模型
我正在尝试以下查询:-
old = PhoneOtp.objects.filter(phone__iexact=phone)
我想让查询集的PhoneOtp模型过滤与电话号码,但这是给我错误的相关字段得到无效的查找:精确。我找了很多东西,但都没能改正。我是第一次使用外键查找django ORM。
发布于 2020-07-01 09:37:56
old = PhoneOtp.objects.get(phone__phone__iexact=phone) # or .(phone__phone=phone)
第一个手机将遵循与用户对象的Foreignkey关系,第二个是 phone 字段
顺便说一句,最好是用用户而不是phone作为外键
class PhoneOtp(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,default=None)
...
# thus you can get the phone using:
old = PhoneOtp.objects.get(user__phone=phone)
https://stackoverflow.com/questions/62673416
复制相似问题