Django REST Framework如何限制用户对某些序列化器字段的访问

Cheng

我有一个模型:

from django.db import models
from django.contrib.auth.models import Group

class Question(models.Model):
    text = models.TextField()
    group = models.OneToOneField(Group)

当被问到有关问题的信息时,我只想退回text零件。因为用户不需要看group零件。但是,在保存模型时,我需要group为用户填写零件。

这是序列化器:

class QuestionSerializer(ModelSerializer):
    class Meta:
        model = Question
        fields = (text)

如果我像上面那样定义序列化器,那么在保存它时我不能做这样的事情:

def put(request, pk):
    data = JSONParser().parse(request)
    group = Group.objects.get(pk=pk)
    qSerializer = QuestionSerializer(data=data, group=group)  # the serializer does not know about group

那么在这种情况下我该怎么办?


更新:

@Anush向我指出了写入方向,解决方案是:

class QuestionSerializer(ModelSerializer):
    class Meta:
        model = Question
        fields = ('text','group')
        extra_kwargs = {'group': {'write_only': True}}

然后,在视图中:

def put(...):
    data['group'] = group.pk
    serializer = QuestionSerializer(data=data)
    if serializer.is_valid():
        serializer.save()
    else:
        raise serializers.ValidationError(serializer.errors)
阿努什·德文德拉(Anush Devendra)

您只能通过以下方式进行group写入QuestionSerializer

class QuestionSerializer(ModelSerializer):
    class Meta:
        model = Question
        fields = ('text','group')
        extra_kwargs = {'group': {'write_only': True}}

在这里了解更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django REST Framework序列化器字段必填= false

来自分类Dev

Django Rest Framework中的序列化器字段筛选?

来自分类Dev

Django REST Framework序列化器字段必填= false

来自分类Dev

序列化器上的Django Rest Framework条件字段

来自分类Dev

Django Rest Framework-筛选序列化器字段

来自分类Dev

从Django Rest Framework序列化器中排除字段

来自分类Dev

Django Rest Framework序列化器-返回相关字段

来自分类Dev

不同的字段类型序列化器 - Django Rest Framework

来自分类Dev

序列化器内部的django-rest-framework访问字段

来自分类Dev

Django Rest Framework-如何序列化嵌套字段

来自分类Dev

Django Rest Framework-如何在序列化器中嵌套多个字段?

来自分类Dev

如何使用Django Rest Framework将url字段添加到序列化器

来自分类Dev

Django Rest Framework-仅反序列化的序列化器字段

来自分类Dev

如何根据已登录的用户撤销Django Rest Framework序列化器中的特定属性?

来自分类Dev

如何在 Django REST Framework API 的 OneToOne 序列化器字段上允许空白字段?

来自分类Dev

在Django Rest Framework中通过URL访问序列化程序字段

来自分类Dev

Django Rest Framework使用动态字段序列化

来自分类Dev

Django Rest Framework-TaggableManager字段的反序列化

来自分类Dev

Django REST Framework-序列化可选字段

来自分类Dev

django-rest-framework用于序列化的不同字段

来自分类Dev

Django Rest Framework 中用户特定的序列化程序

来自分类Dev

在Django Rest Framework中,如何限制要序列化的外键对象的数量

来自分类Dev

Django Rest Framework-在序列化器中获取相关模型字段

来自分类Dev

将计数字段添加到Django Rest Framework序列化器

来自分类Dev

Django REST Framework 3中的其他序列化器字段

来自分类Dev

django-rest-framework:序列化器数据的“ id”字段返回null

来自分类Dev

无法在Django Rest Framework序列化器的validated_data中获取非模型字段

来自分类Dev

Django Rest Framework序列化器-不返回空列表字段

来自分类Dev

Django Rest Framework序列化器分别渲染表单

Related 相关文章

  1. 1

    Django REST Framework序列化器字段必填= false

  2. 2

    Django Rest Framework中的序列化器字段筛选?

  3. 3

    Django REST Framework序列化器字段必填= false

  4. 4

    序列化器上的Django Rest Framework条件字段

  5. 5

    Django Rest Framework-筛选序列化器字段

  6. 6

    从Django Rest Framework序列化器中排除字段

  7. 7

    Django Rest Framework序列化器-返回相关字段

  8. 8

    不同的字段类型序列化器 - Django Rest Framework

  9. 9

    序列化器内部的django-rest-framework访问字段

  10. 10

    Django Rest Framework-如何序列化嵌套字段

  11. 11

    Django Rest Framework-如何在序列化器中嵌套多个字段?

  12. 12

    如何使用Django Rest Framework将url字段添加到序列化器

  13. 13

    Django Rest Framework-仅反序列化的序列化器字段

  14. 14

    如何根据已登录的用户撤销Django Rest Framework序列化器中的特定属性?

  15. 15

    如何在 Django REST Framework API 的 OneToOne 序列化器字段上允许空白字段?

  16. 16

    在Django Rest Framework中通过URL访问序列化程序字段

  17. 17

    Django Rest Framework使用动态字段序列化

  18. 18

    Django Rest Framework-TaggableManager字段的反序列化

  19. 19

    Django REST Framework-序列化可选字段

  20. 20

    django-rest-framework用于序列化的不同字段

  21. 21

    Django Rest Framework 中用户特定的序列化程序

  22. 22

    在Django Rest Framework中,如何限制要序列化的外键对象的数量

  23. 23

    Django Rest Framework-在序列化器中获取相关模型字段

  24. 24

    将计数字段添加到Django Rest Framework序列化器

  25. 25

    Django REST Framework 3中的其他序列化器字段

  26. 26

    django-rest-framework:序列化器数据的“ id”字段返回null

  27. 27

    无法在Django Rest Framework序列化器的validated_data中获取非模型字段

  28. 28

    Django Rest Framework序列化器-不返回空列表字段

  29. 29

    Django Rest Framework序列化器分别渲染表单

热门标签

归档