代码之家  ›  专栏  ›  技术社区  ›  road

Django rest api筛选错误消息:Django.core.exceptions.Field error:相关字段的查找无效

  •  0
  • road  · 技术社区  · 6 年前

    MainName 会过滤掉 Profile 使用此查询:

    Profile.objects.all().filter(simmatch__mainname__mainname=name.lower())
    

    但我收到一条错误信息:

    django.core.exceptions.FieldError:相关字段的查找无效:mainname

    有人能告诉我我做错了什么吗?我对Django很陌生。谢谢!

    我的模型:

    class Profile(models.Model):
        ID = models.IntegerField(unique=True, primary_key=True)
        name = models.CharField(max_length=200)
        hasArticle       = models.CharField(max_length=3)
        gender_guessed   = models.CharField(max_length=5)
        age              = models.CharField(max_length=5)
        profile = models.TextField()
    
        def __str__(self):
            return "{}".format(self.name)
    
    class MainName(models.Model):
        ID = models.IntegerField(unique=True, primary_key=True)
        mainName = models.CharField(  max_length=100) 
    
        def __str__(self):
            return "{}".format(self.mainName)
    
    
    class SimMatch(models.Model):
        profile = models.ForeignKey(Profile,to_field="ID", db_column="profile_ID",on_delete=models.CASCADE,)
        mainName  = models.ForeignKey(MainName, to_field="ID", db_column="ID",on_delete=models.CASCADE,)
    
        def __str__(self):
            return "{}-{}".format(self.mainName,self.profile)
    

    我的问题:

    Profile.objects.all().filter(simmatch__mainname__mainname="My Name")
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Ehsan Nouri    6 年前

    将查询更改为:

    Profile.objects.all().filter(simmatch__mainName__mainName="My Name")
    

    不应使用小写的显式字段。