django rest框架动态url路由

问题描述 投票:0回答:2

我目前正在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)中做一个小项目。我在将视图连接到路由器时遇到问题。我真的很感谢第二双眼睛...

django url django-rest-framework router django-urls
2个回答
0
投票

您需要在urlpatterns中添加路由器url


0
投票

我想提一提您,以便您看一下:

© www.soinside.com 2019 - 2024. All rights reserved.