- script/add_user.py
import sys
import os
project_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(project_dir)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ops.settings")
import django
django.setup()
from django.contrib.auth import get_user_model
User = get_user_model()
def get_users():
for user in User.objects.all():
print(user.username)
if __name__ == "__main__":
get_users()
pip install django_filters
安装到app
注: django_filters.rest_framework.DjangoFilterBackend 支持drf.
- users/filters.py
import django_filters
from django.contrib.auth import get_user_model
User = get_user_model()
class UserFilter(django_filters.FilterSet):
username = django_filters.CharFilter(field_name="username", lookup_expr='contains')
class Meta:
model = User
fields = ['username']
- users/vuews.py
class UserViewset(viewsets.ReadOnlyModelViewSet):
"""
retrieve:
返回指定用户信息
list:
返回用户列表
"""
queryset = User.objects.all()
serializer_class = UserSerializer
filter_class = UserFilter
filter_fields = ("username",)
- settings.py
REST_FRAMEWORK = {
"PAGE_SIZE": 10,
#"DEFAULT_PAGINATION_CLASS":"rest_framework.pagination.PageNumberPagination",
"DEFAULT_PAGINATION_CLASS":"users.pagination.Pagination",
'DEFAULT_FILTER_BACKENDS': (
'django_filters.rest_framework.DjangoFilterBackend',
)
}