Я использую Django 2.x
У меня есть сериализатор для проверки запроса. (Не ModelSerializer)
class ExecuteSerializer(serializers.Serializer):
database = serializers.IntegerField(required=True)
query = serializers.CharField(required=True)
user = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
def validate(self, attrs):
user = attrs.get('user', None)
try:
database = Database.objects.get(pk=attrs.get('database', None), collection__user=user)
except Database.DoesNotExist:
raise ValidationError({
'database': ['Does not exists']
})
attrs['database'] = database
return attrs
database
является ссылкой на модель Database
.
Я хочу, чтобы пользователь передал идентификатор базы данных в поле database
, но полученный преобразован вdatabase
объект после проверки.
Я попытался переопределить метод validate()
и присвоить объект database
полю database
, но он выдает ошибку
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Database'