Как создать многоразовый миксин drf serializer с валидатором уникальности - PullRequest
0 голосов
/ 21 января 2020

Как мне создать миксин, который я могу смешать в ASerializer и BSerializer, чтобы избежать дублирования кода? Моя проблема в том, что я не могу получить доступ к Meta.Model в миксине для запуска проверки уникальности.

class ASerializer(serializers.ModelSerializer):
    z = serializers.PrimaryKeyRelatedField(
        queryset=models.X.objects.all(),
        pk_field=serializers.UUIDField(format='hex_verbose'),
        validators=[
            UniqueValidator(
                queryset=models.A.objects.all()
            )
        ]
    )
    class Meta:
       model = A
       fields = '__all__'


class BSerializer(serializers.ModelSerializer):
    z = serializers.PrimaryKeyRelatedField(
        queryset=models.X.objects.all(),
        pk_field=serializers.UUIDField(format='hex_verbose'),
        validators=[
            UniqueValidator(
                queryset=models.B.objects.all()
            )
        ]
    )
    class Meta:
       model = B
       fields = '__all__'
...