Python Django Rest框架在请求中获取JSON对象,并在ListCreateAPIView中解析
我正在使用Django Rest Framework进行一个项目,在该项目中,我需要发出一个post请求,在该请求中,我需要将JSON对象与其他字段一起传递给TextField,如何传递JSON对象,如下所示:Python Django Rest框架在请求中获取JSON对象,并在ListCreateAPIView中解析,python,django,python-3.x,django-rest-framework,django-request,Python,Django,Python 3.x,Django Rest Framework,Django Request,我正在使用Django Rest Framework进行一个项目,在该项目中,我需要发出一个post请求,在该请求中,我需要将JSON对象与其他字段一起传递给TextField,如何传递JSON对象,如下所示: { "no_of_svc": 3, "svc1": { "name": "details", "imagePullPolicy": "IfNotPresent", "versions": { "v1": { "name": "det
{
"no_of_svc": 3,
"svc1": {
"name": "details",
"imagePullPolicy": "IfNotPresent",
"versions": {
"v1": {
"name": "details-v1",
"image": "example-details-v1"
}
},
"port": {
"port": 9080,
"name": "http"
}
},
"svc2": {
"name": "ratings",
"versions": {
"v1": {
"name": "ratings-v1",
"image": "example-ratings-v1"
},
"v2": {
"name": "ratings-v2",
"image": "example-ratings-v2"
},
"port": {
"port": 9080,
"name": "http"
}
}
},
"svc3": {
"name": "reviews",
"versions": {
"v1": {
"name": "reviews-v1",
"image": "example-reviews-v1",
"containerPort": 9080
},
"v2": {
"name": "reviews-v2",
"image": "example-reviews-v2"
},
"port": {
"port": 9080,
"name": "http"
}
}
}
}
然后在泛型的create方法中解析它
这是我的模型:
services = (
('Single', 'Single'),
('Multiple', 'Multiple'),
)
class DeploymentOnUserModel(models.Model):
deployment_name = models.CharField(max_length=256, )
credentials = models.TextField(blank=False)
project_name = models.CharField(max_length=150, blank=False)
project_id = models.CharField(max_length=150, blank=True)
cluster_name = models.CharField(max_length=256, blank=False)
zone_region = models.CharField(max_length=150, blank=False)
services = models.CharField(max_length=150, choices=services)
configuration = models.TextField()
routing = models.TextField()
def save(self, **kwargs):
if not self.id and self.services == 'Multiple' and not self.routing and not self.configuration:
raise ValidationError("You must have to provide routing for multiple services deployment.")
super().save(**kwargs)
我不理解json和DeploymentOnUserModel模型之间的关系,您如何准确地反序列化您的json?您可以使用json.dumps(您的_json)将json转换为字符串,但每次从中获取数据时都应该使用json.loads(您的_字段_和_json_字符串)。实际上,Hi@ElioMaisonneuve,我的模型中有一个textField,因为这个字段用户需要传递一个JSON对象。嗨@AlexK.,那么我如何才能获得JSON对象中各种键的值,例如**no_of_svc**?@AbdulRehman这就是在textField中编写JSON的方式:model_obj.configuration=JSON.dumps(您的_JSON)(之后别忘了保存模型对象)这就是从中获取数据的方式:configuration=json.loads(model_obj.configuration)(您从json获取dict)和no_of_svc=configuration['no_of_svc'](现在是dict-就像处理常规dict一样处理它)。