我目前正在Django(2.2.5)和djangorestframework(3.10.3)中做一个小项目。我在将视图连接到路由器时遇到问题。我真的很感谢第二双眼睛,可以帮助我尝试找出问题所在
对于URL,我已经尝试了以下2:]
router = routers.DefaultRouter() router.register(r'<chatroom>', views.ChatRoomViewSet) router.register(r'<str:chatroom>', views.ChatRoomViewSet) urlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls',namespace='rest_framework')), path('admin/', admin.site.urls), ]
然后将路由器添加到urlpatterns。
视图集是:
class ChatRoomViewSet(viewsets.ModelViewSet): queryset = ChatRoom.objects.all().order_by('name') serializer_class = ChatRoomSerializer lookup_field = 'name' def get_viewset(self, request, name=None): name = self.kwargs.get('name', None) queryset = ChatRoom.objects.filter(name=name) return queryset
并且序列化器是
class ChatRoomSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = ChatRoom fields = ['url', 'name'] lookup_field = 'name'
模型是:
class ChatRoom(models.Model): name = models.CharField(max_length=255, default="") def __str__(self): return self.name
我明显错过了什么吗?
我目前正在Django(2.2.5)和djangorestframework(3.10.3)中做一个小项目。我在将视图连接到路由器时遇到问题。我真的很感谢第二双眼睛...
您需要在urlpatterns中添加路由器url
我想提一提您,以便您看一下: