我正在尝试使用包含在MainName
中的名称来查询我的数据库,该数据库将通过该查询过滤Profile
:
Profile.objects.all().filter(simmatch__mainname__mainname=name.lower())
但是我收到此错误消息:
django.core.exceptions.FieldError:相关字段的查找无效:主机名
有人可以告诉我我做错了什么吗?我是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")
答案 0 :(得分:1)
将查询更改为:
Profile.objects.all().filter(simmatch__mainName__mainName="My Name")
您不应使用小写的显式字段。