Я использую Django Rest Framework
Мои модели:
class Blog(models.Model):
title = models.CharField(max_length=500, null=False, default='', blank=True)
slug = models.CharField(max_length=200, unique=True)
html_text = RichTextUploadingField(null=False, default='', blank=True)
author = models.ForeignKey('users.BlogAuthor', on_delete=CASCADE, null=False)
category = models.ForeignKey('blogs.BlogCategory')
img_main = models.ImageField(upload_to='blogs/')
img_main_alt_text = models.TextField(blank=True, default='')
created = models.DateTimeField(auto_now=True)
posted = models.DateTimeField(null=True, blank=True)
class BlogCategory(models.Model):
name = models.CharField(max_length=100, null=False)
def __str__(self):
return self.name
Просмотр:
class BlogsAPIView(
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
viewsets.GenericViewSet):
permission_classes = (AllowAny,)
pagination_class = LimitOffsetPagination
serializer_class = BlogSerializer
lookup_field = 'slug'
filter_backends = [django_filters.rest_framework.DjangoFilterBackend]
filterset_fields = ('categories',)
text_search_fields = ['title']
def get_queryset(self):
....
Маршрутизаторы:
router.register('blogs', BlogsAPIView, basename='blogs')
Теперь я получаю весь список сообщений из:
/api/v1/blogs
и отдельное сообщение из:
/api/v1/blogs/some-slug
Как я могу изменить URL-адрес для одного сообщения (подробный URL), чтобы он был вот так:
/api/v1/blogs/category/some-slug
Где категория - это строка, взятая из BlogCategory.name соответствующего поля
спасибо