我正在使用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
如何更改单个帖子的网址(详细网址),如下所示:
/api/v1/blogs/category/some-slug
类别是从相关字段的BlogCategory.name提取的字符串
谢谢