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

Django ORM:选择字段属性

  •  0
  • SapphireSun  · 技术社区  · 14 年前

    我有一个包含filefield的模型。我要搜索特定的文件名。我该怎么做?我在尝试:

    MyModel.objects.get(document__name=FOO)
    

    我有一个“文档”字段的加入是不允许的。

    谢谢!

    3 回复  |  直到 14 年前
        1
  •  1
  •   Alex Gaynor    14 年前

    您可以对文档进行筛选,它将根据文件磁盘路径的字符串进行筛选。

        2
  •  2
  •   robhudson    14 年前

    的属性 FileField 不存储在数据库中,不能在查询中使用。例如,名称只是 upload_to 字符串加上文件名。如果要存储有关该文件的额外数据,则必须将该数据作为 example documentation 显示一辆名为“57雪佛兰”的汽车。

    此外,通常Django的ORM中的双下划线表示遵循数据库关系,或者 ForeignKey 或A ManyToMany . 所以在您提供的ORM调用示例中,我假设 MyModel 有一块地 document 那不是一个 外键 多瘤 到另一个模型,而另一个模型有一个名为 name . 这听起来不像是事实。

    希望这对一些人有帮助。

        3
  •  2
  •   lprsd    14 年前

    改为这样做:

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