python-3.x - Django Rest 框架过滤器的问题
问题描述
我是 django rest 的新手,我正在尝试为我的应用程序构建过滤器。查看文档https://github.com/philipn/django-rest-framework-filters我遵循了所有实现步骤,但是当我尝试按用户名过滤搜索时,没有任何效果
设置.py
INSTALLED_APPS = [
'general',
'suprimentos',
'corsheaders',
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.messages',
'django.contrib.sessions',
'django.contrib.staticfiles',
'django.contrib.contenttypes',
'simple_history',
'django_filters',
'rest_framework_filters',
'django_dbconn_retry',
'rest_framework'
]
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
'DEFAULT_FILTER_BACKENDS': (
'rest_framework_filters.backends.RestFrameworkFilterBackend',
)
}
视图.py
import django_filters.rest_framework
from rest_framework import viewsets
from rest_framework import filters
import rest_framework_filters as filters
from rest_framework_filters import backends
class UsernameFilter(filters.FilterSet):
username = filters.AllLookupsFilter(name='username')
class TrackUserView(viewsets.ModelViewSet):
model = TrackUser
queryset = TrackUser.objects.all()
serializer_class = TrackUserSerializer
filter_backends = [backends.RestFrameworkFilterBackend]
filter_class = UsernameFilter
def get(self, request):
track = UserLoginActivity.objects.all()
serializer = UserLoginActivitySerializer(track, many=True)
data = serializer.data
return Response({'result':data})
def post(self, request):
url = request.data['page']
ip_client = request.META.get('HTTP_IP_CLIENT')
if ip_client:
ip = ip_client.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
username = request.user.username
user_agent_info = request.META.get('HTTP_USER_AGENT', '<unknown>')[:255]
hour = datetime.datetime.now()
model = TrackUser.objects.create(url=url, ip=ip, username=username, user_agent_info=user_agent_info, datetime=hour)
return Response(status=status.HTTP_200_OK)
网址.py
path('trackuser/',TrackPagesView.as_view({'get':'get','post':'post'}), name='trackuser')
我不知道是否缺少某些东西,或者我在某处放错了东西,但我找不到导致它的错误或语法问题。
解决方案
推荐阅读
- java - RequestParam = false 不返回所有内容
- spring - 为什么 Spring boot AspectJ 有时只错过触发
- flutter - 即使在颤振中重新启动应用程序后如何保持相同状态
- c# - 为什么功能区项目没有显示在窗口上?
- sql - SQL 连接日期和日期 - 如果未找到匹配项,则返回最新的
- selenium-webdriver - 如何阻止弹出窗口出现在 Jmeter WebDriver Sampler 上
- java - 需要对人们在测试中使用的不同用例进行一些解释
- json - 使用 Python 脚本更新 TFS Web
- python - 如何处理内联评论?
- javascript - 如何将 Android 支持添加到 TensorFlow 和 React Native