1
我延長auth.user模型時返回用戶擴展字段:Django的 - 創建用戶
Modles.py:
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=15)
這是我UserSerializer。
當我創建的用戶,我可以更新其userprofile
場,但我無法弄清楚如何將它添加到系列化的用戶,並返回用戶字段+的擴展字段。
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'username', 'first_name', 'last_name', 'password',)
read_only_fields = ('phone_number',)
extra_kwargs = {'password': {'write_only': True}}
def create(self, validated_data):
user = User(
first_name=validated_data['first_name'],
username=validated_data['username'],
last_name=validated_data['last_name']
)
user.set_password(validated_data['password'])
user.save()
user.userprofile.phone_number = self.initial_data["phone_number"]
user.userprofile.save()
the_dict = {
'id': user.id,
'username': user.username,
'first_name': user.first_name,
'last_name': user.last_name,
'phone_number': user.userprofile.phone_number
}
return the_dict
正如你所看到的,我想以某種方式將其添加到字典中,但在我的客戶,我只得到了用戶的字段(「ID」,「用戶名」,「FIRST_NAME」,「姓氏」) 。
如何添加phone_number?
是的,我發現問題後才發現。它效果很好 –