Текущий пользователь в админке django - PullRequest
0 голосов
/ 09 марта 2011

Я пробовал множество способов найти текущий идентификатор пользователя в администрации django.Я попытался получить идентификатор пользователя через SessionKey и request.user (HTTPRequest) безрезультатно.Мое последнее воплощение:

def save(self, request, obj, form, change):
    if getattr(obj, 'submitter', None) is None:
        obj.submitter = request.user
    obj.save()

    super(AppAdmin, self).save()

в admin.py и

submitter = models.ForeignKey(User, null=True, blank=True, related_name="submitter")

в models.py.Я нашел это в другом месте при переполнении стека, но это, похоже, не работает.Любая помощь приветствуется.

Спасибо!

1 Ответ

8 голосов
/ 09 марта 2011

Судя по вашему фрагменту, вы пытаетесь сохранить зарегистрированного пользователя в поле модели в ModelAdmin

Похоже, вы хотели переопределить save_model

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

class AppAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.submitter = request.user # no need to check for it.
        obj.save()
...