Как мне переписать эти 2 вида в 1 вид?
сериализаторы
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id', 'first_name', 'last_name', 'email', 'gender', 'ip_address',
]
class StatisticSerializer(serializers.ModelSerializer):
class Meta:
model = Statistic
fields = ['clicks', 'page_views', 'date']
class UserStatisticSerializer(serializers.Serializer):
user = serializers.SerializerMethodField()
max_date = serializers.SerializerMethodField()
min_date = serializers.SerializerMethodField()
def to_representation(self, instance):
...
return data
просмотров
class UserListApiView(ListAPIView):
serializer_class = UserSerializer
queryset = User.objects.all()
pagination_class = UsersSetPagination
class StatisticAPIView(RetrieveAPIView):
serializer_class = UserStatisticSerializer
queryset = User.objects.all()
модели
class User(AbstractUser):
username = models.CharField(max_length=40, blank=True, null=True)
email = models.EmailField(unique=True, db_index=True)
gender = models.CharField(max_length=6, choices=GENDER_CHOICES, default=GENDER_MALE)
ip_address = models.GenericIPAddressField()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
class Statistic(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='statistics')
date = models.DateField(db_index=True)
page_views = models.PositiveSmallIntegerField()
clicks = models.PositiveSmallIntegerField()