2016-10-23 58 views
1

使用Django 1.10的JSONField,我想通過json字段篩選queryset,該字段在包含子字符串(sql like)的特定鍵上具有值。 例如有一個json字段link,其中url鍵。我想,它的URL的對象包含.jpgDjango JSONField字符串遏制

+0

沒有django支持afaik,你需要的原始查詢http://stackoverflow.com/questions/28718958/postgresql-like-query-in-json-field – serg

回答

0

如果可以的話,我將創建這個與視圖/模型「get_queryset」功能:

def get_queryset(self): 
     queryset = Entry.objects.all() 
     json = params.get('json', None) 
     if json is not None: 
      """ DO STUFF HERE TO STRIP THE JSON TO THE WANTED LINK """ 
      q = queryset.filter(json__icontaints=".jpg") 
     return q 

閱讀更多關於這個問題在這裏:https://docs.djangoproject.com/en/1.10/topics/db/queries/

+0

正如在官方文檔中指定的,'''contains'''有一個過濾json字段時的特殊含義,你使用了正常字段的icontains – Mohsen

+0

這個('json__contains','jso n__icontains')將不適用於JSON字段。 https://code.djangoproject.com/ticket/26511 – jhrr