是否可以通过 FileField 的 url 属性查询 Django 对象
Is it possible to query Django objects by their FileField's url attribute
我有一个带有 FileField 的 Django class。我知道您可以通过调用 filefield.path 或 filefield.url 来获取 FileField 的 url 或路径。我尝试使用
通过它们的 FileField url 查询所有这些对象
media = MediaLibraryFile.objects.filter(media_file__url='some_key')
但是我得到这个错误。
Unsupported lookup 'url' for FileField or join on the field not permitted.
我环顾了网络,发现只能在与外键相关的对象上使用查找字段,所以我的问题是如果是这种情况,如何通过文件字段查询对象 url?这似乎是一个非常常见的查询。
这是我使用 icontains
在 media_file 上进行简单查询时得到的结果
In[27]: MediaLibraryFile.objects.all()[0].media_file.url
Out[27]: '/media/2017/6/13/444e35c2-0432-479a-805d-c46638ee3600.jpg'
In [28]: MediaLibraryFile.objects.filter(media_file__contains='/media/2017/6/13/444e35c2-0432-479a-805d-c46638ee3600.jpg')
Out[28]: <QuerySet []>
如果你确切地知道你想要匹配什么,你可以做;
MediaLibraryFile.objects.filter(media_file__exact='some_key')
或者您也可以执行类似这样的查询;
MediaLibraryFile.objects.filter(media_file__contains='some')
请注意,以上内容区分大小写。如果不知道大小写,可以filter(media_file__icontains='something')
字段查询的文档在这里; https://docs.djangoproject.com/en/2.0/topics/db/queries/#field-lookups
我有一个带有 FileField 的 Django class。我知道您可以通过调用 filefield.path 或 filefield.url 来获取 FileField 的 url 或路径。我尝试使用
通过它们的 FileField url 查询所有这些对象media = MediaLibraryFile.objects.filter(media_file__url='some_key')
但是我得到这个错误。
Unsupported lookup 'url' for FileField or join on the field not permitted.
我环顾了网络,发现只能在与外键相关的对象上使用查找字段,所以我的问题是如果是这种情况,如何通过文件字段查询对象 url?这似乎是一个非常常见的查询。
这是我使用 icontains
在 media_file 上进行简单查询时得到的结果In[27]: MediaLibraryFile.objects.all()[0].media_file.url
Out[27]: '/media/2017/6/13/444e35c2-0432-479a-805d-c46638ee3600.jpg'
In [28]: MediaLibraryFile.objects.filter(media_file__contains='/media/2017/6/13/444e35c2-0432-479a-805d-c46638ee3600.jpg')
Out[28]: <QuerySet []>
如果你确切地知道你想要匹配什么,你可以做;
MediaLibraryFile.objects.filter(media_file__exact='some_key')
或者您也可以执行类似这样的查询;
MediaLibraryFile.objects.filter(media_file__contains='some')
请注意,以上内容区分大小写。如果不知道大小写,可以filter(media_file__icontains='something')
字段查询的文档在这里; https://docs.djangoproject.com/en/2.0/topics/db/queries/#field-lookups