让当前用户在我的某个模型的save方法中使用它

M. *_*Gar 5 django django-models

我需要让当前用户登录我的一个模型的save方法,就像request.user来自视图但是在保存模型方法中,这是可行的吗?如果是的话,我该怎么办呢?

Ahm*_*hbi 13

如果你的models.py中有这样的模型:

class Post(models.Model):
    title = models.CharField(max_length=100)
    created_by = models.ForeignKey(User, editable=False)
Run Code Online (Sandbox Code Playgroud)

然后在你的admin.py中它应该是:

class PostAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        if not change:
            obj.created_by = request.user
        obj.save()
admin.site.register(Post, PostAdmin);
Run Code Online (Sandbox Code Playgroud)

editable=False如果要允许用户将其分配created_by给其他用户,也可以删除.