我试图解释.update()在这个上下文中是如何使用的。代码如下:
user = User.objects.get(username=username)
userializer = UserSerializer(user)
other = Other.objects.get(other=userializer.data['user_id'])
oserializer = OtherSerializer(other)
userdata = userializer.data
userdata.update({'target_id': oserializer['target'].value})
下面是UserSerializer:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('user_id',
'username',
'sec_question_1',
'sec_answer_1',
'sec_question_2',
'sec_answer_2',
'sec_question_3',
'sec_answer_3',
'roles')
可以看出,目标_id不在序列化程序中
所以我想知道这个.update()方法是如何更新原始模型行的,我想知道它的文档在哪里-这是QuerySet.update()吗?是serializer.update()吗(它似乎不存在-是否存在默认值?)
我正试图重写它,使其更加健壮,我很难理解到底发生了什么
这里使用的} ,而是Python字典^{}.
.update()
不是Django^{以上两行使用实例初始化序列化程序。当您对传递给它的实例执行}.
serializer.data
操作时,它将返回一个包含该实例的序列化表示的字典。所以userdata
是Python字典,或者更准确地说是^{现在,当您使用dictionary参数调用
userdata
上的.update()
时,它将向userdata
字典添加另一个键target_id
以下几行是等效的
这两者都不是,它根本不会影响这场争吵
序列化程序的输出是一个标准Python字典。Dicts有一个
update
方法;这就是这里所说的这段代码也可以写成:
相关问题 更多 >
编程相关推荐