如果我有这个代码
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>
如果我尝试通过子模型中的字段进行查询:
Son.objects.filter(Father__Contains="Fred")
我收到错误。在Django的文档中,最近的选项应该是:
Son.objects.filter(Father__Description__contains="Fred")
或任何列数据
Son.objects.filter(Q(Father__Description__contains="Fred") | Q(Father__Code__Contains="Fred") )
我想制作与所显示的用户信息最相似的内容。
我怎样才能做出可以做到这一点的查询?
答案 0 :(得分:0)
一步到位,你可以这样做:
Son.objects.filter(father__Description__contains="Fred")
你做得对,唯一错误的是:
引用实体父应该是模型的小写名称