【发布时间】:2019-09-02 14:36:42
【问题描述】:
假设我有一个模型如下:
class SampleUser(models.Model):
name = models.CharField(max_length=100)
email = models.CharField(max_length=100)
class Group(models.Model):
members = models.ManyToManyField(SampleUser)
name = models.CharField(max_length=100)
我想知道使用序列化器创建对象有什么好处,比如说
序列化器.py
class SampleUserSerializer(serializers.ModelSerializer):
class Meta:
model = SampleUser
fields = ('name','id','email')
views.py
serializer = SampleUserSerializer(data = request.data)
if(serializer.is_valid()):
serializer.save()
比直接创建一个示例用户对象
SampleUser.objects.create(....)
提前致谢!!!
【问题讨论】:
-
第二个例子中的
...来自哪里? -
@DanielRoseman 通过这些点,我的意思是我想放在那里创建对象的任何参数
-
对。但它是如何到达那里的?序列化程序的重点是它获取 POST 数据,对其进行验证,然后创建对象。否则,您从哪里获取创建对象的数据?
-
@DanielRoseman 我将从 request.data 中单独设置参数,例如
name=request.data["name"]等 -
但这比使用序列化程序更好吗?您将如何验证数据是否有效?
标签: django django-models django-rest-framework django-serializer