Django ORM:选择字段属性

时间:2010-02-01 02:01:09

标签: django django-models

我有一个包含FileField的模型。我想搜索特定的文件名。我该怎么做?我在努力:

MyModel.objects.get(document__name=FOO)

我不允许加入字段“文档”。

谢谢!

3 个答案:

答案 0 :(得分:2)

FileField的属性未存储在数据库中,不能在查询中使用。例如,名称只是upload_to字符串加上文件名。如果要存储有关文件的额外数据,则必须将该数据放入数据库的其他字段,因为example documentation显示的汽车名称为“57 Chevy”。

此外,通常Django的ORM中的双下划线表示遵循数据库关系,ForeignKeyManyToMany。因此,在您提供的示例ORM调用中,我假设MyModel的字段document与另一个模型的ForeignKeyManyToMany相对应,而其他模型具有一个名为name的字段。这听起来不是这样的。

希望有所帮助。

答案 1 :(得分:2)

请改为:

MyModel.objects.get(document__icontains='FOO')

答案 2 :(得分:1)

您可以对文档进行过滤,它将按照磁盘上的路径字符串进行过滤。