Python 具有基于分类的api视图的DetailApiViewset
我正在尝试创建详细的API视图集,但现在,每当我转到“matches/API/matches/1/”时,都找不到该页面。ListCreateAPIView工作正常 以下是我的视图集:Python 具有基于分类的api视图的DetailApiViewset,python,django,django-rest-framework,django-views,django-class-based-views,Python,Django,Django Rest Framework,Django Views,Django Class Based Views,我正在尝试创建详细的API视图集,但现在,每当我转到“matches/API/matches/1/”时,都找不到该页面。ListCreateAPIView工作正常 以下是我的视图集: class MatchViewset(viewsets.ViewSetMixin,泛型.ListCreateAPIView): 序列化程序\u类=匹配序列化程序 def get_queryset(自我): header\u token=self.request.META.get('HTTP\u AUTHORIZAT
class MatchViewset(viewsets.ViewSetMixin,泛型.ListCreateAPIView):
序列化程序\u类=匹配序列化程序
def get_queryset(自我):
header\u token=self.request.META.get('HTTP\u AUTHORIZATION',None)
打印(标题\标记)
如果标头_标记不是无:
尝试:
token=sub('token','',self.request.META.get('HTTP_AUTHORIZATION',None))
token\u obj=token.objects.get(key=token)
self.request.user=token\u obj.user
除Token.DoesNotExist外:
通过
打印(self.request.user)
返回Match.objects.filter(creator=self.request.user)
类MatchDetailViewset(generics.RetrieveUpdatedStroyapiView):
queryset=Match.objects.all()
序列化程序\u类=匹配序列化程序
和路由器:
router=routers.DefaultRouter()
路由器.register(r'matches',matches_views.MatchViewset,base_name=“matches”)
和网址:
app_name='matches'
URL模式=[
路径('api/',包括(router.url)),
]
根据此处的文档:
在router.register(r'matches',matches\u views.MatchViewset,base\u name=“matches”)
之后,必须给出
urlpatterns=router.url
我想这将解决问题根据这里的文档: 在
router.register(r'matches',matches\u views.MatchViewset,base\u name=“matches”)
之后,必须给出
urlpatterns=router.url
我想这会解决问题
MatchDetailViewset
未在urlpatterns中注册,这就是为什么会出现404错误MatchDetailViewset
未在urlpatterns中注册,这就是为什么会出现404错误我在我的URL文件中使用了include函数,所以我猜不是这样。我只是补充了一个问题。我在我的URL文件中使用了include函数,所以我猜不是这样。我只是补充了一个问题。
class MatchViewSet(viewsets.ModelViewSet):
serializer_class = MatchSerializer
queryset = Match.objects.all()
def list(self, request, *args, **kwargs):
header_token = self.request.META.get('HTTP_AUTHORIZATION', None)
print(header_token)
if header_token is not None:
try:
token = sub('Token ', '', self.request.META.get('HTTP_AUTHORIZATION', None))
token_obj = Token.objects.get(key=token)
self.request.user = token_obj.user
except Token.DoesNotExist:
pass
print(self.request.user)
# customize the queryset for listview
queryset = self.get_queryset().filter(creator=self.request.user)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)