【发布时间】:2014-11-05 01:50:12
【问题描述】:
总结:我正在使用 Django Rest 框架来创建一个简单的对象(如下所示)。在序列化程序中,我只采用必填字段。但是,我没有在 POST 响应中恢复所有字段(如 id、creation_date 等)。我只取回非只读字段。请帮忙:
型号
class Document(models.Model):
owner = models.IntegerField(null=False)
description = models.CharField(max_length=512, blank=True)
created_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
expiry_time = models.DateTimeField(blank=True, null=True)
status = models.CharField(max_length=128, blank=True)
size = models.IntegerField(blank=True)
type = models.IntegerField(max_length=128, blank=True)
序列化器
class DocumentCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Document
fields = ('expiry_time', 'description', 'size', 'type', 'status')
read_only_fields = ('id', 'owner', 'created_time', 'update_time')
查看
class DocumentViewSet(viewsets.ModelViewSet):
...
...
def get_serializer_class(self):
if self.request.method == 'POST':
serializer_class = DocumentCreateSerializer
elif self.request.method == 'GET':
serializer_class = DocumentGetSerializer
elif self.request.method == 'PUT':
serializer_class = DocumentUpdateSerializer
elif self.request.method == 'PATCH':
serializer_class = DocumentUpdateSerializer
return serializer_class
【问题讨论】:
标签: python django django-rest-framework