Python Django rest框架错误对象X没有属性';获得额外的行动';
我想添加一些搜索功能到我的API,我遵循了,但我仍然得到错误 类型对象“ClientViewSet”没有属性“get\u extra\u actions”Python Django rest框架错误对象X没有属性';获得额外的行动';,python,django,django-rest-framework,Python,Django,Django Rest Framework,我想添加一些搜索功能到我的API,我遵循了,但我仍然得到错误 类型对象“ClientViewSet”没有属性“get\u extra\u actions” 我的设置 版本 Django:2.2.5 Django Rest框架:3.11.0 Python:3.8.2 models.py class Client(models.Model): phone = models.CharField(max_length=10) url.py router = routers.Default
我的设置 版本
- Django:2.2.5
- Django Rest框架:3.11.0
- Python:3.8.2
class Client(models.Model):
phone = models.CharField(max_length=10)
url.py
router = routers.DefaultRouter()
router.register(r'clients', ClientViewSet)
urlpatterns = [
path('api/', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]
序列化程序.py
class ClientSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Client
fields = '__all__'
views.py
class ClientViewSet(generics.ListAPIView):
queryset = Client.objects.all()
serializer_class = ClientSerializer
filter_backends = [filters.SearchFilter]
search_fields = ['phone']
“您将其称为视图集,但这并不意味着它就是视图集;您继承了APIView,它是一个独立的通用视图,而不是视图集
视图集需要从视图集继承。视图集。“
要构建视图集,ViewSet
需要从ViewSet
继承,而ListAPIView
类不从ViewSet
继承
但是,实现此功能的一种方法是将继承的类从ListAPIView
更改为ModelViewSet
,如下所示:
class ClientViewSet(viewsets.ModelViewSet):
queryset = Client.objects.all()
serializer_class = ClientSerializer
filter_backends = [DjangoFilterBackend]
filter_fields = ['phone']
是的,它是一个
CharField