我有django api及其序列化器和模型......我使用这样的过滤器:
class OrderFilter(django_filters.FilterSet):
class Meta:
model = Dealer
fields = {
'first_name': ['icontains', 'exact'],
'last_name': ['icontains', 'exact'],
'mobile': ['icontains', 'exact'],
'is_active': ['exact'],
'agent': ['exact'],
}
所有这些字段都是django模型字段,但在我的序列化程序中,我有一个像这样的SerializerMethodField:
class DealerListSerializer(serializers.ModelSerializer):
online = serializers.SerializerMethodField()
def get_online(self, obj):
r = Redis.get_instance().conn
key = settings.ONLINE_PREFIX.format(obj.id)
if r.get(key):
return True
return False
我想在网上申请过滤器 .
class OrderFilter(django_filters.FilterSet):
online = django_filters.rest_framework.BooleanFilter(method='filter_online')
def filter_online(self, queryset, name, value):
?????
class Meta:
model = Dealer
fields = {
'first_name': ['icontains', 'exact'],
'last_name': ['icontains', 'exact'],
'mobile': ['icontains', 'exact'],
'is_active': ['exact'],
'agent': ['exact'],
'online': ['exact'],
}
我该怎么办?谢谢
1 回答
您可以使用以下功能