【问题标题】:Django REST framework hide a specific serializer field [duplicate]Django REST框架隐藏特定的序列化器字段[重复]
【发布时间】:2021-04-05 10:17:06
【问题描述】:

我想知道如何在序列化器(ModelSerializer)中隐藏特定字段

例子

模型.py

class Book(models.Model):
    title = models.CharField(max_length=30)
    author = models.CharField(max_length=30)
    hide_this_one = models.CharField(max_length=30) # hide this field

序列化器.py

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

views.py

class BookApiView(views.APIView):
    template_name = 'book/create-book.html'
    permission_classes = (AllowAny, )
    renderer_classes = [TemplateHTMLRenderer]
    
    def get(self,request,*args,**kwargs):
        serializer = BookSerializer()
        return Response({'serializer':serializer})

我想在序列化程序呈现为 HTML 时隐藏 hide_this_one 字段

我需要 html 上的 hide_this_one 字段但保持隐藏(

如果你改变了字段的样式,请告诉我如何隐藏标签。

例子:

class BookSerializer(serializers.ModelSerializer):
    hide_this_one = serializers.CharField(...., style={'input_type':'hidden'})

    class Meta:
        model = Book
        fields = '__all__'

感谢您的帮助!

【问题讨论】:

  • 试试fields =['author','title']

标签: python django django-rest-framework


【解决方案1】:

您可以使用exclude

class BookSerializer(serializers.ModelSerializer):
    hide_this_one = serializers.CharField(...., style={'input_type':'hidden'})

    class Meta:
        model = Book
        exclude = ('hide_this_one', )

【讨论】:

  • 我需要隐藏这个字段(widget = forms.hiddeninput()) 不排除它
猜你喜欢
  • 2016-08-31
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多