55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
"""Review app back serializers."""
|
|
from django.contrib.contenttypes.models import ContentType
|
|
from rest_framework import serializers
|
|
|
|
from account.models import User
|
|
from review.models import Review
|
|
|
|
|
|
class _ReviewerSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = (
|
|
'id',
|
|
'username',
|
|
'first_name',
|
|
'last_name',
|
|
'email',
|
|
)
|
|
|
|
|
|
class _ContentTypeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ContentType
|
|
fields = (
|
|
'id',
|
|
'app_label',
|
|
'model',
|
|
)
|
|
|
|
|
|
class ReviewBackSerializer(serializers.ModelSerializer):
|
|
reviewer_data = _ReviewerSerializer(read_only=True, source='reviewer')
|
|
content_type_data = _ContentTypeSerializer(read_only=True, source='content_type')
|
|
status_display = serializers.CharField(read_only=True, source='get_status_display')
|
|
|
|
class Meta:
|
|
model = Review
|
|
fields = (
|
|
'id',
|
|
'reviewer',
|
|
'reviewer_data',
|
|
'text',
|
|
'status',
|
|
'status_display',
|
|
'mark',
|
|
'priority',
|
|
# 'child',
|
|
'published_at',
|
|
'vintage',
|
|
# 'country',
|
|
'content_type',
|
|
'content_type_data',
|
|
'object_id',
|
|
)
|