том, как автоматизировать указывание, криэтора в объекте джанго модели (указывать создавшего реквест в качестве 'оунера' объекта)
если это брать в рамках вью пихаешь каждый раз скажем при создании объекта
для админки создаешь на каждый объект отдельную логику
при сейве
есть решение, через мидлвейр, вида
# requesruser.py
_USER = ContextVar('USER', default=None)
class Middleware:
# тут где-то вызывается
def call(self, request):
_USER.set(request.user)
get_user():
# метод для получения юзера
user=_USER.get()
return user
код примерный, чисто для показа, Midleware пихается в мидлвары, а гет юзер в любом месте кода
есть фидбеки, что глобал чисто как глобал уже гамно, но насколько плохо его использование в данном контексте?
может есть у кого другие варианты решения задачи?
мб ссылки реализации подобного в других фреймах
изначально, реализация подсмотрена от сюда
https://www.agiliq.com/blog/2019/01/tracking-creator-of-django-objects/
Можно завернуть объект реквеста в thread local storage, и доставать его внутри save() юзера, но подход так себе, если у вас веб-воркеры на гринлетах, то не сработает
Обсуждают сегодня