35 lines
954 B
Python
35 lines
954 B
Python
"""DRF-serializers for application report."""
|
|
from rest_framework import serializers
|
|
|
|
from report.models import Report
|
|
|
|
|
|
class ReportBaseSerializer(serializers.ModelSerializer):
|
|
"""Serializer for model Report."""
|
|
|
|
category_display = serializers.CharField(source='get_category_display', read_only=True)
|
|
|
|
class Meta:
|
|
"""Meta class."""
|
|
model = Report
|
|
fields = [
|
|
'id',
|
|
'category',
|
|
'category_display',
|
|
'url',
|
|
'description',
|
|
]
|
|
extra_kwargs = {
|
|
'source': {'required': False},
|
|
'category': {'write_only': True}
|
|
}
|
|
|
|
def validate(self, attrs):
|
|
"""An overridden validate method."""
|
|
attrs['source'] = self.context.get('view').get_source()
|
|
return attrs
|
|
|
|
def create(self, validated_data):
|
|
"""An overridden create method."""
|
|
return self.Meta.model.objects.make(**validated_data)
|