Django:通过FileField.name搜索(过滤)

Par*_*and 17 django

我需要找到FileFields指向特定文件集的模型实例.这可能是显而易见的并且在某处记录但我似乎无法找到它:在django过滤器查询中使用FieldField.name的语法是什么?就像是:

models.MyModel.objects.filter(image__name='myfile.jpg')
Run Code Online (Sandbox Code Playgroud)

Par*_*and 23

没关系 - 只是

models.MyModel.objects.filter(image='myfile.jpg')
Run Code Online (Sandbox Code Playgroud)

一个单独的问题让我觉得这不起作用,但实际上是这样.

  • 不要忘记将“upload_to”添加到图像名称中。如果你在你的字段中定义了 `upload_to`(例如 `upload_to='upload/folder/'`),你应该使用 `models.MyModel.objects.filter(image='upload/folder/myfile.jpg')`(在问题发布 8 年后通过 Google 来到这里。) (7认同)
  • 如果您不想包含路径,只需执行 `models.MyModel.objects.filter(image__endswith='myfile.jpg')` (4认同)
  • 只需考虑当使用“image__endswith”时一个名称是另一个名称的子字符串的情况,例如“ab.jpg”和“b.jpg”,这可能会导致问题。 (2认同)