小编ken*_*gcc的帖子

Django休息框架序列化很多到很多领域

如何将多对多字段序列化为某些列表,并通过休息框架返回它们?在下面的示例中,我尝试将帖子与一个与之关联的标签列表一起返回.

models.py

class post(models.Model):
    tag = models.ManyToManyField(Tag)
    text = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

serializers.py

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = ("text", "tag"??)
Run Code Online (Sandbox Code Playgroud)

views.py

class PostViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer
Run Code Online (Sandbox Code Playgroud)

python django django-models django-serializer django-rest-framework

58
推荐指数
5
解决办法
5万
查看次数

Django rest框架Router - 如何添加自定义URL和查看功能

我正在使用Django Rest Framework的默认路由器并尝试自定义我的链接.

如何设置如下所示的排列方式:

  1. /myModels/dosomething(并在API Root视图中列出)
  2. /myModels/addModel?name=abc&address=xyz

    Views.py

    class MyModelViewSet(viewsets.ModelViewSet):
        queryset = MyModel.objects.all()
        serializer_class = MyModelSerializer
    
    Run Code Online (Sandbox Code Playgroud)

    urls.py

    router = routers.DefaultRouter(trailing_slash=True)
    router.register(r'mymodels', views.MyModelViewSet)
    
    Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

11
推荐指数
2
解决办法
9125
查看次数

Django rest框架序列化器返回一个列表而不是json

我有以下标签和帖子对象的多对多关系.我尝试在post序列化程序中返回的是返回列表中的标记(仅使用Tag.name)而不是json,这样做的干净方法是什么?

serializers.py

class TagSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tag
        fields = ('name', 'description', 'date_created', 'created_by')

class PostSerializer(serializers.ModelSerializer):
    tags = TagSerializer(read_only=True, many=True)

    class Meta:
        model = Post
        fields = ('post_id',
                  'post_link',
                  'tags')
Run Code Online (Sandbox Code Playgroud)

目前,PostSerializer以json格式返回带有所有字段的标签,我只想让它在字符串列表中返回标签:['tag1','tag2','tag3'].

python django django-serializer django-rest-framework

4
推荐指数
1
解决办法
3022
查看次数

Django休息框架 - 如何进行不区分大小写的视图集搜索

如何在rest框架的视图集中启用不区分大小写的搜索?

例如,假设Post模型有标签.下面的所有链接应该找到相同的标记内容,现在它们区分大小写并尝试搜索不同的值:

  1. /文章/标签= ABCDEF
  2. /文章/标签= ABCDEF
  3. /文章/标签= ABCDEF

views.py

class PostViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

2
推荐指数
2
解决办法
2071
查看次数