簡體   English   中英

如何創建/更新2個對象[Django Rest Framework]

[英]How to create / update 2 objects [Django Rest Framework]

我是django rest框架的新手,正在嘗試在同一請求中創建/更新2個對象:

class PessoaSerializer(serializers.ModelSerializer):
    user = UserSerializer(required=False)

    class Meta:
        model = Pessoa
        fields = ('id', 'user', 'nome', 'email', 'cargo', 'fone', 'cep', 'celular', 'endereco', 'observacao', 'municipio')

    def create(self, validated_data):

        usuario = User()
        usuario.first_name = validated_data.get('nome')
        usuario.username = validated_data.get('email')
        usuario.last_name = validated_data.get('nome') #TODO
        usuario.email = validated_data.get('email')
        usuario.is_active = True
        usuario.is_staff = False
        usuario.is_superuser = False
        usuario.set_password(validated_data.get('email')) #TODO
        usuario.last_login = datetime.datetime.now()
        usuario.date_joined = datetime.datetime.now()
        usuario.save()

        validated_data['user'] = usuario

        return Pessoa.objects.create(**validated_data)

    def update(self, instance, validated_data):
       #TODO

這是最好的方法嗎? 還是我想念什么?

試試下面的代碼:

def create(self, validated_data):
    user_data = validated_data.pop('user')
    pessoa = Pessoa.objects.create(**validated_data)
    pessoa.user.add(user_data)
    return pessoa

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM