Django 管理后台当前用户

0 投票
1 回答
2488 浏览
提问于 2025-04-16 13:22

我尝试了很多方法来获取django管理后台当前用户的ID。我试过通过SessionKey和request.user(HTTP请求)来获取,但都没有成功。我最近的尝试是:

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文件中。我在Stack Overflow上找到了这个方法,但似乎不管用。希望能得到一些帮助。

谢谢!

1 个回答

8

从你提供的代码片段来看,你是想把当前登录的用户保存到你的模型字段中,这个操作是在一个 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()

撰写回答