Модель зарегистрировать сохранить созданного пользователя django admin

Я использую django admin, и у меня есть модель, в которой есть свойство created_user. Проблема в том, что я не знаю, как зарегистрировать пользователя из админки django. Кто-нибудь знает, как это сделать?

в разделе On Admin Site вы должны увидеть автоматически добавленные ModeAdmins для Users и Groups

в Users ModelAdmin вы можете создавать новые User.

Для регистрации пользователя, выполнившего создание/обновление модели в админке django, переопределите метод save_model в представлении админки.

Предположим, что рассматриваемая модель - это SomeRandomModel, определенная следующим образом

#in models.py
from django.db import models
from django.conf import settings

class SomeRandomModel(models.Model):
    some_field = models.CharField(max_length=200)
    another_field = models.CharField(max_length=200)
    created_user = models.ForeignKey(
        settings.AUTH_USER_MODEL, 
        blank=True, null=True, 
        related_name="%(app_label)s_%(class)s_created_by_set", 
        editable=False, 
        on_delete=models.PROTECT)
    updated_user = models.ForeignKey(
        settings.AUTH_USER_MODEL, 
        blank=True, null=True, 
        related_name="%(app_label)s_%(class)s_updated_by_set", 
        editable=False, 
        on_delete=models.PROTECT
    )

Чтобы связать created_user и updated_user на SomeRandomModel с текущим вошедшим пользователем, когда выполняется CRUD в Django admin, переопределите метод save_model в admin.py следующим образом:


#admin.py
from models import SomeRandomModel
from django.contrib import admin

@admin.register(SomeRandomModel)
class SomeRandomModelAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        if not obj.pk:
            obj.created_user = request.user #user who created the object should only be set once
        obj.updated_user = request.user #user that last updated the object can be set on each save
        super().save_model(request, obj, form, change)

Ссылка: Как связать модель с текущим пользователем при сохранении?

Вернуться на верх