Django REST框架隐藏了一个特定的序列化程序字段



我想知道如何在序列化程序(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

serializers.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字段,但保持隐藏(<input-type="hidden"…>(

如果您更改字段的样式,请告诉我如何隐藏标签。

示例:

class BookSerializer(serializers.ModelSerializer):
hide_this_one = serializers.CharField(...., style={'input_type':'hidden'})
class Meta:
model = Book
fields = '__all__'

谢谢你的帮助!

您可以使用exclude

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

最新更新