我有一个模型,其中有一个用于显示其创建时间的字段created_time
。我不想created_time
在创建模型时是需要的,但我想它是在检索的数据从模型!
这是它的序列化器:
class ModelSerializer(ModelSerializer):
class Meta:
model = Model
fields = ['name', 'created_time']
这是它的观点:
class ModelApiView(ModelViewSet):
serializer_class = ModelSerializer
def get_queryset(self):
return Model.objects.filter(user=self.request.user.id)
def perform_create(self, serializer):
serializer.save(user=self.request.user, created_time=datetime.now())
现在,通过get
请求,它发送带有name
和的Model对象列表,created_time
这是完美的。但是,当我发布一个要创建的仅包含其模型的新模型时name
,它将向我发送此错误消息:
{
"datetime": [
"This field is required."
]
}
您可以通过在中指定来使该字段为非必需字段ModelSerializer
:
class MyModelSerializer(ModelSerializer):
created_time = serializer.DateTimeField(required=False)
class Meta:
model = MyModel
fields = ['name', 'created_time']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句