首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QuerytSet引发:相关字段无效查找:

QuerytSet引发:相关字段无效查找:
EN

Stack Overflow用户
提问于 2020-07-01 09:05:54
回答 1查看 2.2K关注 0票数 1

我正在尝试过滤我的外键并获得PhoneOtp模型的查询集。

代码语言:javascript
运行
复制
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)

以上是我的两个模型

我正在尝试以下查询:-

代码语言:javascript
运行
复制
old = PhoneOtp.objects.filter(phone__iexact=phone)

我想让查询集的PhoneOtp模型过滤与电话号码,但这是给我错误的相关字段得到无效的查找:精确。我找了很多东西,但都没能改正。我是第一次使用外键查找django ORM。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 09:37:56

代码语言:javascript
运行
复制
old = PhoneOtp.objects.get(phone__phone__iexact=phone) # or .(phone__phone=phone)

第一个手机将遵循与用户对象的Foreignkey关系,第二个是 phone 字段

顺便说一句,最好是用用户而不是phone作为外键

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62673416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档