【发布时间】:2015-04-04 13:48:53
【问题描述】:
我将举一个例子来更好地解释我的问题
我的要求:
发布
请求正文:(已发布)
{"name":"Matt",
"salary":10000,
"blog_url":"www.myblog.com",
"dept_name":"ENG"
}
class CustomRequest(object):
def __init__(self,name,salary,blog_url,dept_name):
self.name=name
self.salary=10000
self.blog_url=blog_url
self.dept_name=dept_name
models.py
class myUser(models.Model):
//fields -- username, salary
class myUserProfile(models.Model):
User=models.OneToOneField(user)
blog_url=models.URLfield()
dept_name=models.ForeignKey(Department)
@apiview(['POST'])
def createUser(customrequest):
myuser=user(customrequest.name, customrequest.salary)
myuser.save()
myuser.userprofile.blog_url(customrequest.blog_url)
myuser.userprofile.dept_name(customrequest.dept_name)
myuser.save()
我的大部分 REST 服务都使用 Java JAX-RS API。在这个框架下, POST请求体会自动反序列化为方法传入的对象(上例中为customrequest)。开发人员可以定义一个具有他在 POST 请求中寻找的属性的对象,然后执行业务逻辑。
现在我们正在考虑迁移到 Django,我想知道 Django Rest Framework 是否提供了这种开箱即用的行为。如果是这样,我该怎么做? 请注意,在 JAX-RS 世界中,开发人员不需要编写序列化程序。所需要的只是传入的 JSON 被脱轨的传输对象。
我假设在 Django 中,需要序列化程序和传输对象来实现相同的目的。
【问题讨论】:
标签: json django jax-rs django-rest-framework