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.
 
 
 
 
 

52 lines
1.6 KiB

from django.contrib.auth.models import User
from rest_framework import serializers
from . import models
class CategorySerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='category-detail', lookup_field='slug')
class Meta:
model = models.Category
fields = '__all__'
class ToolSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tool-detail', lookup_field='slug')
category = serializers.HyperlinkedRelatedField(
view_name='category-detail',
lookup_field='slug',
queryset=models.Category.objects.all()
)
class Meta:
model = models.Tool
fields = '__all__'
class ToolDataSerializer(serializers.HyperlinkedModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='category-detail', lookup_field='slug')
tools = ToolSerializer(many=True)
class Meta:
model = models.Category
fields = '__all__'
class ProfileSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.StringRelatedField()
cards = serializers.StringRelatedField(many=True, read_only=True)
authorized_tools = serializers.SlugRelatedField(
many=True,
slug_field='slug',
queryset=models.Tool.objects.all()
)
class Meta:
model = models.Profile
fields = '__all__'
class UserSerializer(serializers.ModelSerializer):
profile = ProfileSerializer(read_only=True)
class Meta:
model = User
fields = ('username', 'profile')
depth = 1