我想要创建一个表单字段,以在模型中添加一些输入字段和值。我对这条蟒蛇和Django休息很陌生。注意:我不应该更改模型和序列化程序。我可以为此创建新的序列化程序。
我受够了
我的期待:
{
"id" : "6fe7c9dd-8d69-4337-8f96-6d67463f6a1d",
"name": "xyz",
"age" : 22,
"additional_detail":{
"details": {
"bloodgroup" : "A+ve",
"city" : "abc"
}
}
}models.py
class Student(models.model)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField()
age = models.IntergerField()
additional_detail = JSONField(_details)serizlizer.py
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = '__all__'views.py
class StudentViewSet(viewsets.ModelViewSet):
queryset = student.objects.all()
serializer_class = StudentSerializer我想像这样插入"additional_detail“字段
"details": {
"bloodgroup" : "A+ve",
"city" : "abc"
}我希望将此字段插入到新视图中,作为put或修补程序的id方法。是否可以对这些附加文件进行非模型序列化?请将所有.py的完整解决方案作为文件发送给我
发布于 2017-06-01 10:42:48
一个快速的解决方案可以实现to_representation方法。
class StudentSerializer(serializers.ModelSerializer):
def to_representation(self, student):
# Serialize the student object
serialized_data = super(StudentSerializer, self).to_representation(student)
# Include your non-model data
serialized_data["additional_details"]["details"] = {
"bloodgroup" : "A+ve",
"city" : "abc"
}
return serialized_data
class Meta:
model = Student
fields = '__all__'希望能帮上忙!
https://stackoverflow.com/questions/44111505
复制相似问题