Я хочу создать собственный или измененный URL-адрес с помощью маршрутизатора для ModelViewSet.
Текущий сценарий:
/models.py
class BlogPost(models.Model):
title = models.CharField(max_length=300)
description = models.TextField()
slug = models.SlugField(max_length=300, unique=True)
/serializers.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
Теперь я могу получить доступ к URL-адресу, как показано ниже:
список https://localhost:8000/blog
получить https://localhost:8000/blog/1
Как вы можете видеть, URL-адрес извлечения может быть вызван с использованием pk или id. Но я создал поле модели под названием slug и оно уникально. Мой вопрос заключается в том, как изменить URL-адрес извлечения, чтобы я мог вызывать URL-адрес извлечения, используя поле slug. Например: https://localhost:8000/blog/test-slug
Примечание. Почему я хочу создать URL-адрес с помощью slug? Ответ: Я хочу использовать URL-адреса для карты сайта.