|
|
|
@ -10,13 +10,25 @@ class CategorySerializer(serializers.HyperlinkedModelSerializer): |
|
|
|
|
model = models.Category |
|
|
|
|
fields = '__all__' |
|
|
|
|
|
|
|
|
|
class CourseSerializer(serializers.HyperlinkedModelSerializer): |
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='course-detail', lookup_field='slug') |
|
|
|
|
tools = serializers.SlugRelatedField( |
|
|
|
|
many=True, |
|
|
|
|
slug_field='slug', |
|
|
|
|
queryset=models.Tool.objects.all() |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = models.Course |
|
|
|
|
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() |
|
|
|
|
) |
|
|
|
|
view_name='category-detail', |
|
|
|
|
lookup_field='slug', |
|
|
|
|
queryset=models.Category.objects.all() |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = models.Tool |
|
|
|
@ -33,16 +45,20 @@ class ToolDataSerializer(serializers.HyperlinkedModelSerializer): |
|
|
|
|
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() |
|
|
|
|
) |
|
|
|
|
courses = serializers.SlugRelatedField( |
|
|
|
|
many=True, |
|
|
|
|
slug_field='slug', |
|
|
|
|
queryset=models.Course.objects.all() |
|
|
|
|
) |
|
|
|
|
authorized_tools = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = models.Profile |
|
|
|
|
fields = '__all__' |
|
|
|
|
|
|
|
|
|
def get_authorized_tools(self, obj): |
|
|
|
|
return [tool.slug for tool in models.Tool.objects.filter(course__profile=obj)] |
|
|
|
|
|
|
|
|
|
class UserSerializer(serializers.ModelSerializer): |
|
|
|
|
profile = ProfileSerializer(read_only=True) |
|
|
|
|
|
|
|
|
|