31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
from rest_framework import serializers
|
|
from users.models import User
|
|
|
|
class UserSerializer(serializers.ModelSerializer): # https://stackoverflow.com/a/29867704/17834235
|
|
def create(self, validated_data):
|
|
user = User.objects.create()
|
|
|
|
user.set_password(validated_data["password"])
|
|
validated_data.pop("password")
|
|
|
|
for field in validated_data:
|
|
setattr(user, field, validated_data[field])
|
|
|
|
user.save()
|
|
return user
|
|
|
|
def update(self, instance, validated_data):
|
|
if "password" in validated_data:
|
|
password = validated_data.pop("password")
|
|
instance.set_password(password)
|
|
|
|
return super().update(instance, validated_data)
|
|
|
|
image = serializers.ImageField(required=False, max_length=None, use_url=False)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ("id", "username", "first_name", "last_name", "password", "image", "homegroup", "homegroup_invites")
|
|
write_only_fields = ("password",)
|
|
read_only_fields = ("id", "homegroup_invites")
|