Python 如何通过Django foreignkey描述进行查询?

Python 如何通过Django foreignkey描述进行查询?,python,django,django-models,django-orm,Python,Django,Django Models,Django Orm,如果我有这个密码 class Father(models.Model): Description = models.CharField(max_length=50) Code = models.IntegerField(max_length=2, unique=True) def __unicode__(self): return "%s (%s)" % (self.Description, self.Code) class Son(mod

如果我有这个密码

class Father(models.Model):
    Description = models.CharField(max_length=50)
    Code        = models.IntegerField(max_length=2, unique=True)
    def __unicode__(self):
        return "%s (%s)" % (self.Description, self.Code)

class Son(models.Model):
    Father = models.ForeignKey(Father)
    Description = models.CharField(max_length=50)
我想通过显示给用户的选择框创建一个过滤器

假设我有父亲的记录,比如:

  # |  Description | Code
--------------------------
  1 | Fred Nichols | 100
在ForeignKey字段中,应包含如下HTML内容:

<option value="1">Fred NIchols (100)</option>
我犯了一个错误。在Django的文档中,最接近的选项应该是:

Son.objects.filter(Father__Description__contains="Fred")
或用于任何列数据

Son.objects.filter(Q(Father__Description__contains="Fred") | Q(Father__Code__Contains="Fred") )
我想做一些最类似的用户信息显示


我怎么能提出这样一个查询呢

在单个步骤中,您可以执行以下操作:

Son.objects.filter(father__Description__contains="Fred")
你做对了唯一错的是: 引用实体父项应为模型的小写名称


你的问题不清楚。你想干什么?最后一行代码应该可以获取FK父亲的任何儿子的描述或包含Fred的代码。如果用户尝试搜索类似的内容,它应该能够找到所有记录。搜索应该像ForeignKey字段中的字符串一样工作。它需要搜索哪些字段?我猜他在问如何根据_uunicode__;的返回值进行过滤。这是一个重复的问题
Son.objects.filter(father__Description__contains="Fred")