Нет, это не изменилось. Просто потому, что разделение интересов - это архитектурный принцип MVC (модель-представление-контроллер), который также определяет архитектуру Django (модель-представление-шаблон) и большинство веб-фреймворков с ORM. Модели ничего не знают о request
, он недоступен (и во многих случаях вообще нет запроса при сохранении модели, подумайте о командах управления или обычных задачах, работающих в фоновом режиме).
Альтернатива локальному потоку состоит в том, чтобы убедиться, что вы реализуете его самостоятельно на уровне контроллера (слой представления в Django):
- Создайте миксин представления, который можно смешивать со всеми родовыми c представления, использующие
ModelFormMixin
для сохранения пользователя в модели (ModelFormMixin.form_valid()
). Или объедините его с миксином формы, где пользователь передается в форму (FormMixin.get_form_kwargs()
) и сохраняется при сохранении формы (ModelForm.save()
). - Создайте миксин
ModelAdmin
, который делает то же самое, когда сохранение модели на сайте администратора django.
Это, конечно, означает, что кто-то из вашей команды может забыть сделать это при создании новых видов и форм. Ссылка, которую вы разместили, содержит ответ о преимуществах и недостатках использования локальной темы.