Django/DRF: Можно ли сделать методы валидации статическими?
В попытке сделать свой код как можно более чистым, я делаю пропуск, чтобы добавить @staticmethod ко всем методам, которые не используют self
. В DRF типичный метод валидации выглядит следующим образом:
def validate_website(self, value):
value = value.strip()
if len(value) > 200:
raise ValidationError(_('Website may have up to 200 characters.'))
return value
Другими словами, валидные методы почти всегда используют value
вместо self
, поэтому они являются кандидатами на статус @staticmethod. В дополнение к желанию устранить раздражающие подчеркивания, которые моя IDE ставит под именем метода, чтобы сообщить мне, что он "может быть статическим", я думаю, что наверняка есть некоторые накладные расходы, связанные с передачей self
каждому методу. Поэтому устранение этих накладных расходов, если они не нужны, не может быть плохой вещью, верно?
Итак, два вопроса... 1) Можно ли добавить @staticmethod к этим методам проверки?; и, 2) Стоит ли это делать с точки зрения производительности?