openly/backend/api/serializers.py

50 lines
1.4 KiB
Python

from rest_framework import serializers
from django.contrib.auth.models import User
from .models import Profile, Post, Event
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
class UserCreateSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
def create(self, validated_data):
user = User.objects.create(
username = validated_data['username'],
email = validated_data['email'],
first_name = validated_data['first_name'],
last_name = validated_data['last_name']
)
user.set_password(validated_data['password'])
user.save()
profile = Profile.objects.create(user=user)
profile.save()
return user
class Meta:
model = User
fields = ('username', 'password', 'email', 'first_name', 'last_name')
class ProfileSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Profile
fields = ('user', 'nickname',)
class PostSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Post
fields = ('user', 'headline', 'content', 'votes')
class EventSerializer(serializers.ModelSerializer):
class Meta:
model = Event
fields = ('name', 'date', 'organizer', 'address', 'description',)