Задать вопрос
@RokkerRuslan

Как определить пользователя в админке Django?

Предположим, есть табличка с заказами, нужно знать кто внес этот заказ в базу, а если я использую админку в качестве этого, то как определить пользователя который залогинился?
  • Вопрос задан
  • 2912 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
SilentSokolov
@SilentSokolov
Не совсем понял, что вы хотите. Вы говорите что работает через админку, но не наследуетесь от admin.ModelAdmin, и у вас нет кастомных вьюх ... у вас стандартная админка или ...?

Вот пример кода для стандартной админки:

class Order(models.Model):
    title = models.CharField(max_length=255)
    body = models.TextField()
    creator = models.ForeignKey('User', null=True, blank=True)


class OrderAdmin(admin.ModelAdmin):
    fieldsets = [....]

    def save_model(self, request, obj, form, change):
        if getattr(obj, 'creator', None) is None:
            obj.creator = request.user
        obj.save()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
alrusdi
@alrusdi
Переопределите метод save_model вашего наследника от admin.ModelAdmin - там доступен request и, соответсвенно, request.user https://docs.djangoproject.com/en/dev/ref/contrib/...
Ответ написан
alternativshik
@alternativshik
request.user, как и везде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы