# api/serializers.py from rest_framework import serializers from django.contrib.auth import get_user_model from .models import Link, LinkGroup User = get_user_model() class RegisterSerializer(serializers.ModelSerializer): password = serializers.CharField(write_only=True) class Meta: model = User fields = ('username', 'email', 'password') def create(self, validated_data): user = User( username=validated_data['username'], email=validated_data.get('email', '') ) user.set_password(validated_data['password']) user.save() return user # api/serializers.py from rest_framework import serializers from django.conf import settings from .models import Link, LinkGroup # сериализатор для ссылок class LinkSerializer(serializers.ModelSerializer): class Meta: model = Link fields = ['id', 'title', 'url', 'icon', 'order', 'group'] # сериализатор для групп со вложенными ссылками class LinkGroupSerializer(serializers.ModelSerializer): # related_name у вас в модели LinkGroup.owner = 'api_link_groups', # а у модели Link.group = 'links', так что у группы obj.links — это QuerySet ссылок links = LinkSerializer(many=True, read_only=True) class Meta: model = LinkGroup fields = ['id', 'name', 'order', 'links'] from django.contrib.auth import get_user_model from rest_framework import serializers User = get_user_model() class UserSerializer(serializers.ModelSerializer): class Meta: model = User # поля, которые хотите отдавать на фронт: fields = ['id', 'username', 'email', 'full_name', 'bio', 'avatar', 'last_login', 'date_joined']