python - 无法在 django 项目中创建过滤器
问题描述
我想在项目中添加过滤器,但这个错误在 CMD 中出现
AttributeError: module 'rest_framework.filters' has no attribute 'DjangoFilterBackend'
项目名称 = 框架 ProjectApp 名称 = 框架
视图.py
from typing import Tuple
from django.shortcuts import render
from .serializer import TaskSerializers
from rest_framework import viewsets
from .models import Task
from rest_framework import filters
import django_filters
# Create your views here.
class myviewset(viewsets.ModelViewSet):
queryset = Task.objects.all()
serializer_class = TaskSerializers
filter_backends =(filters.DjangoFilterBackend,filters.OrederingFilter)
filter_fields=('completed',)
ordering = ('-date_created')
已安装的应用程序:
INSTALLED_APPS = [
'framework',
'rest_framework',
'django_filters',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
解决方案
该类并非源自,而是源自DjangoFilterBackend
模块,因此您应该将其导入为:rest_framework.filters
django_filters.rest_framework
from typing import Tuple
from django.shortcuts import render
from .serializer import TaskSerializers
from rest_framework import viewsets
from .models import Task
# ↓ load from the django_filters module
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters
import django_filters
# Create your views here.
class myviewset(viewsets.ModelViewSet):
queryset = Task.objects.all()
serializer_class = TaskSerializers
filter_backends =(DjangoFilterBackend, filters.OrderingFilter)
filter_fields=('completed',)
ordering = ('-date_created',)
为了使用它,您首先需要django-filter
在虚拟环境中安装包:
pip install django-filter
并将其添加到INSTALLED_APPS
:
# settings.py
INSTALLED_APPS = [
# …,
'django_filters',
# …
]
推荐阅读
- excel - 排序箭头出现,但实际上并未排序
- vb.net - 鼠标滚动 3 次
- html - Jekyll 不渲染模板页面
- python - Python:将 datetime.datetime 转换为 DatetimeIndex
- sql - 在 BigQuery 中取消嵌套结构
- c# - 什么时候会从 UI 线程返回异步等待方法?在第一次等待还是在内部等待?
- c# - Xamarin 形成 C# StackLayout
- algorithm - “对多项式求平方”与“使用 FFT 将多项式与自身相乘”
- java - 如何在 JSON 数组中断言两个具有相同键但值不同的 JSON 对象
- java - 如何在 HTML 或 Javascript 中嵌入 java 代码