Django 如何准确地筛选列表JSONField?
我有一个模型,基本上可以归结为:Django 如何准确地筛选列表JSONField?,django,django-rest-framework,django-filter,Django,Django Rest Framework,Django Filter,我有一个模型,基本上可以归结为: class Model: json_field = JSONFIeld(default=list) 其中json_字段本质上是一个字符串列表。假设我有两个模型对象ModelA和ModelB,它们的json_字段分别为[“1”、“2”、“3”]和[“1”、“2”、“4”] 如何准确地过滤到json_字段?具体而言: 搜索值是多少 按搜索值筛选的查询是什么 实际上,我正在使用来管理DRF后端的搜索功能。(例如/api/v1/models/?json\u字段
class Model:
json_field = JSONFIeld(default=list)
其中json_字段本质上是一个字符串列表。假设我有两个模型对象ModelA
和ModelB
,它们的json_字段分别为[“1”、“2”、“3”]
和[“1”、“2”、“4”]
如何准确地过滤到json_字段?具体而言:
class ModelFilter(django_filter.FilterSet):
class Meta:
model = Model
field = "json_field"
# Not even sure if this should be a CharFilter
json_field = django_filters.CharFilter(method="json_field_filter")
def json_field_filter(self, queryset, name, value):
return queryset.filter(json_field__iexact=value)
# doesn't work where value = ["1","2","3"]
# also doesn't work where value = "1","2","3"
我可以在网上找到字典的解决方案(我一直在上面工作),但列表却没有。如有任何帮助/指点,将不胜感激
class ModelFilter(django_filter.FilterSet):
class Meta:
model = Model
field = "json_field"
# Not even sure if this should be a CharFilter
json_field = django_filters.CharFilter(method="json_field_filter")
def json_field_filter(self, queryset, name, value):
return queryset.filter(json_field__iexact=value)
# doesn't work where value = ["1","2","3"]
# also doesn't work where value = "1","2","3"