我想为 ModelViewSet 使用路由器创建自定义或修改的 url。
当前情景:
/模型.py
class BlogPost(models.Model):
title = models.CharField(max_length=300)
description = models.TextField()
slug = models.SlugField(max_length=300, unique=True)
/序列化程序.py
class BlogListSerializer(serializers.ModelSerializer):
class Meta:
model = BlogPost
exclude = ('id',)
/views.py
class BlogViewSet(ModelViewSet):
queryset = BlogPost.objects.all()
serializer_class = BlogListSerializer
/urls.py
router = DefaultRouter()
router.register(r'blog', BlogViewSet, basename='blog')
urlpatterns = router.urls
现在,我可以访问以下网址:
检索https://localhost:8000/blog/1
如您所见,可以使用 pk 或 id 调用检索 url。但是我创建了一个名为 slug 的模型字段,它是独一无二的。我的问题是如何修改检索 url,以便我可以使用 slug 字段调用检索 url。例如:https://localhost:8000/blog/test-slug
注意:为什么我要使用 slug 创建一个 url?答:我想使用站点地图的网址。