You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1005 B
36 lines
1005 B
from django.contrib.auth.models import User
|
|
from rest_framework import serializers
|
|
from .models import App, Room, Message
|
|
|
|
class UserSerializer(serializers.HyperlinkedModelSerializer):
|
|
|
|
password = serializers.CharField(write_only=True)
|
|
|
|
def create(self, validated_data):
|
|
user = User.objects.create_user(
|
|
username=validated_data['username'],
|
|
password=validated_data['password'],
|
|
)
|
|
return user
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ['id', 'username', 'password']
|
|
|
|
class AppSerializer(serializers.HyperlinkedModelSerializer):
|
|
class Meta:
|
|
model = App
|
|
fields = ['id', 'name']
|
|
|
|
class RoomSerializer(serializers.HyperlinkedModelSerializer):
|
|
class Meta:
|
|
model = Room
|
|
fields = ['id', 'name', 'app']
|
|
|
|
class MessageSerializer(serializers.HyperlinkedModelSerializer):
|
|
|
|
user = UserSerializer()
|
|
|
|
class Meta:
|
|
model = Message
|
|
fields = ['id', 'text', 'date', 'user', 'room', 'parent']
|
|
|