我有两个序列化程序。。。MyRegisterSerializer
继承并扩展了一个流行的应用程序/包django rest auth,它连接到一个相当标准的用户表。我还有一个自定义应用的模型和序列化程序TeamSerializer(与用户的一对多关系)。当用户注册时,我希望他们能够同时加入一个团队,所以我需要创建一个团队,返回团队ID,然后将该ID传递给RegisterSerializer,这样团队的ID就可以存储在user表中。我知道我可以进行两次调用,首先创建团队并返回值,然后将其传递给register序列化程序,但是有没有一种方法可以在一个序列化程序中完成这一切呢?我是python的n00b,考虑到必须返回get_cleaned_data()
函数,因此找不到一个很好的例子。谢谢您!在
class TeamSerializer(serializers.ModelSerializer):
class Meta:
model = Team
fields = ('id', 'name', 'logo', 'user')
class MyRegisterSerializer(RegisterSerializer):
first_name = serializers.CharField()
last_name = serializers.CharField()
def get_cleaned_data(self):
super(MyRegisterSerializer, self).get_cleaned_data()
return {
'team_id': <How do I get this value>
'username': self.validated_data.get('username', ''),
'position': self.validated_data.get('password1', ''),
'email': self.validated_data.get('email', ''),
'first_name': self.validated_data.get('first_name', ''),
'last_name': self.validated_data.get('last_name', '')
}
这取决于你想如何创建团队:
1。团队由其他信息创建:
您应该能够使用此自定义字段:
并在序列化程序中使用它:
^{pr2}$2。这看起来是writable nested serializers的完美用例:
我不知道你到底需要什么。如果你需要进一步的帮助,请告诉我。在
相关问题 更多 >
编程相关推荐