drf 动态字段omit
This commit is contained in:
parent
ceb0fe2354
commit
f6a7ada99f
|
@ -1,13 +1,19 @@
|
||||||
from django_filters import rest_framework as filters
|
from django_filters import rest_framework as filters
|
||||||
from .models import User
|
from .models import User
|
||||||
|
from utils.mixins import DynamicFieldsFilterMixin
|
||||||
|
|
||||||
|
|
||||||
class UserFilter(filters.FilterSet):
|
class UserFilter(DynamicFieldsFilterMixin, filters.FilterSet):
|
||||||
name = filters.CharFilter(field_name='name', lookup_expr='contains')
|
name = filters.CharFilter(field_name='name', lookup_expr='contains')
|
||||||
fields = filters.CharFilter(method='filter_fields')
|
fields = filters.CharFilter(method='filter_fields')
|
||||||
|
omit = filters.CharFilter(method='filter_omit')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ['name', 'is_active', 'fields']
|
fields = ['name', 'is_active', 'fields']
|
||||||
|
|
||||||
def filter_fields(self, queryset, name, value):
|
def filter_fields(self, queryset, name, value):
|
||||||
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
def filter_omit(self, queryset, name, value):
|
||||||
return queryset
|
return queryset
|
|
@ -2,9 +2,13 @@
|
||||||
Mixin to dynamically select only a subset of fields per DRF resource.
|
Mixin to dynamically select only a subset of fields per DRF resource.
|
||||||
"""
|
"""
|
||||||
# import warnings
|
# import warnings
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
|
|
||||||
# from django.conf import settings
|
# from django.conf import settings
|
||||||
|
class DynamicFieldsFilterMixin(object):
|
||||||
|
fields = filters.CharFilter(method='filter_fields')
|
||||||
|
def filter_fields(self, queryset, name, value):
|
||||||
|
return queryset
|
||||||
|
|
||||||
class DynamicFieldsMixin(object):
|
class DynamicFieldsMixin(object):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue