Переопределение конкретного поля __get__ на экземпляре модели в Django
Я пытаюсь временно подправить request.user, чтобы изменить его поведение (в моем случае мне нужно предупредить разработчиков, что поле устарело или вызвать исключение)
У меня есть промежуточное программное обеспечение следующего вида:
def middleware(request: HttpRequest) -> HttpResponse:
if request.user.is_authenticated and request.user.patient is not None:
def _get_patient():
raise SomeAPIError() # or return value with warning
request.user.patient = _get_patient
response = get_response(request)
return response
return middleware
Проблема в том, что, конечно, Django не позволяет мне сделать это так просто. Я понимаю, что patient свойство здесь является дескриптором, и я хочу переопределить его __get__ метод, но я не знаю как.