Сохранение текущего пользователя при сохранении модели в бэкенде администрирования Django
Я хочу хранить данные о пользователе, который впервые сохранил модель, в одном из полей этой модели. Вот что у меня есть.
models.py
:
from django.conf import settings
class Project(models.Model):
[...]
added_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.PROTECT)
def save_model(self, request, obj, form, change):
if not obj.pk:
obj.added_by = request.user
super().save_model(request, obj, form, change)
settings.py
:
AUTH_USER_MODEL = 'auth.User'
В request.user
, похоже, всегда пусто (я вхожу в /admin
как root). Что я упускаю?
Это не относится к модели, а к ModelAdmin
:
from django.contrib import admin
@admin.register(ModelAdmin)
class ProjectAdmin(admin.ModelAdmin):
# …
def save_model(self, request, obj, form, change):
if obj._state.adding:
obj.added_by = request.user
return super().save_model(request, obj, form, change)