属性错误:';模块';对象没有属性';DjangoFilterBackend';
我正在使用django filter,但我得到以下错误:“module”对象没有属性“django FilterBackend” 我在下面发送我的代码: Model.py属性错误:';模块';对象没有属性';DjangoFilterBackend';,django,django-filter,Django,Django Filter,我正在使用django filter,但我得到以下错误:“module”对象没有属性“django FilterBackend” 我在下面发送我的代码: Model.py from django.db import models # Create your models here. class searchModel(models.Model): email = models.CharField(max_length=25) password = models.Char
from django.db import models
# Create your models here.
class searchModel(models.Model):
email = models.CharField(max_length=25)
password = models.CharField(max_length=10)
image = models.ImageField(upload_to='Image/')
def __str__(self):
return "%s" % self.email
序列化程序.py
from rest_framework import serializers
from .models import searchModel
class searchserializer(serializers.ModelSerializer):
image = serializers.ImageField(max_length=None, use_url=True)
class Meta:
model=searchModel
fields=('email','password','image')
from rest_framework import viewsets
from .models import searchModel
from .serializers import searchserializer
#from django_filters.rest_framework import filters
from rest_framework import filters
class searchView(viewsets.ModelViewSet):
queryset=searchModel.objects.all()
serializer_class = searchserializer
filter_backends = (filters.DjangoFilterBackend,filters.OrderingFilter,)
filter_fields = ('email')
ordering = ('email')
视图.py
from rest_framework import serializers
from .models import searchModel
class searchserializer(serializers.ModelSerializer):
image = serializers.ImageField(max_length=None, use_url=True)
class Meta:
model=searchModel
fields=('email','password','image')
from rest_framework import viewsets
from .models import searchModel
from .serializers import searchserializer
#from django_filters.rest_framework import filters
from rest_framework import filters
class searchView(viewsets.ModelViewSet):
queryset=searchModel.objects.all()
serializer_class = searchserializer
filter_backends = (filters.DjangoFilterBackend,filters.OrderingFilter,)
filter_fields = ('email')
ordering = ('email')
使用来自的建议导入,您将执行以下操作:
import django_filters.rest_framework
class searchView(viewsets.ModelViewSet):
...
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,filters.OrderingFilter,)
或者,你也可以这样做
from django_filters.rest_framework import DjangoFilterBackend
class searchView(viewsets.ModelViewSet):
...
filter_backends = (DjangoFilterBackend, filters.OrderingFilter,)
它会对你有用的
检查以下代码:
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters
class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all().order_by('-date_created')
serializer_class = TaskSerializers
filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
使用此导入将执行以下操作:
import django_filters.rest_framework
filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
相同-原因是FilterSet是django_过滤器的一部分,而不是rest_Framework,因此: 删除“从rest_框架导入过滤器”行 。。。
从django_filters导入FilterSet、AllValuesFilter、DateTimeFilter、NumberFilter如果您只想通过电子邮件进行筛选,可以覆盖搜索视图中的get_queryset。“不工作”没有足够的信息来帮助您。从rest\u框架从导入视图集。模型从导入searchModel。序列化程序从django\u过滤器导入searchserializer#从django\u过滤器。rest\u框架从django\u过滤器导入过滤器。rest\u框架从rest\u框架导入过滤器类searchView(ViewSet.ModelViewSet):queryset=searchModel.objects.all()序列化程序\u类=searchserializer筛选器\u后端=(DjangoFilterBackend,filters.OrderingFilter)筛选器\u字段=('email')排序=('email')