【发布时间】:2020-09-10 06:18:31
【问题描述】:
我有一个模型,它有一个字段来显示它创建的时间,名为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 和created_time 的模型对象列表,这是完美的。但是当我发布一个要创建的新模型时,它只包含它的name,它会向我发送这个错误消息:
{
"datetime": [
"This field is required."
]
}
【问题讨论】:
-
您可以在
ModelSerializer顶部添加created_time = serializer.DateTimeField(required=False)。
标签: python django datetime django-rest-framework django-serializer