【发布时间】:2018-12-01 17:14:15
【问题描述】:
我在将字段序列化为 DateTimeRangeField 时遇到了一些问题。该请求当前必须具有以下格式:
data = {"time":
{
"lower": timeThing,
"upper": laterTimeThing
}
}
我希望它在请求中看起来像这样:
data = {
"start": timeThing,
"end": laterTimeThing
}
所以我可以将开始/结束序列化为下/上。 这是我的模型:
class Example(models.Model):
time = DateTimeRangeField()
user = models.ForeignKey('user.User')
class ExampleAPI(ListCreateAPIView):
serializer_class = ExampleSerializer
pagination_class = None
queryset = Example.objects.all()
def perform_create(self, serializer):
serializer.save(user=self.request.user)
class ExampleSerializer(serializers.ModelSerializer):
time = DateTimeRangeField(write_only=True)
user = serializers.ReadOnlyField(source='user.id')
class Meta:
model = Example
exclude = ['user']
我尝试创建一个custom field,但它似乎没有进入覆盖的 to_representation 或 to_internal_value。我得到的错误信息是 {'time': ['This field is required.']}
【问题讨论】:
标签: python django serialization django-models django-rest-framework