我有一个表post_media
,其中有一个JSON列metadata
。现在,metadata
JSON有一个字段originalName
,该字段具有文件/媒体的全名,例如:test.png。
各种文件都可以在其中找到:.png,.jpeg,.mov,.pdf,.ppt,.doc等
我想选择仅从表中查找png文件。该扩展名没有单独的列。
我已经使用as
和mutator
在虚拟列中进行了尝试。但是where
无法使用虚拟列。
$post_media = PostMedia::select(\DB::raw("metadata->>'originalName' from '\.([^\.]*)$') as file_extention"))->where('file_extention', 'png')->get();
我想要所有PNG扩展名文件。有想法吗?
答案 0 :(得分:2)
您所能做的就是将您的正则表达式条件放在如下所示的条件下。
class LessonDeleteView(DeleteView):
model = Lesson
success_url = '../'
template_name = 'lesson_confirm_delete.html'
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
self.object.file.delete() # <-- added file delete code
success_url = self.get_success_url()
self.object.delete()
return HttpResponseRedirect(success_url)
它将为您提供帮助。