如何在详细信息视图中包括URL参数

时间:2020-08-05 09:37:53

标签: python-3.x django django-rest-framework

我正在使用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提取的字符串

谢谢

0 个答案:

没有答案