python - 使模型中的用户默认为当前用户

标签 python django django-models django-admin

<分区>

我有以下内容:

from django.contrib.auth.models import User

class ClientDetails(models.Model):
    created_by = models.ForeignKey(User)
    ...

如何让 created_by 默认为当前登录的用户?

(我想这样做是因为我可以将它隐藏在管理 View 中,主要是因为当我保存一个实例时我不想每次都填充它)

最佳答案

由于您需要从 request 对象获取当前登录的用户,您无法在模型的 save 方法中获取它,但您可以例如覆盖模型管理员的保存模型-方法:

class MyAdmin(admin.ModelAdmin):
    def save_model(self, request, instance, form, change):
        user = request.user 
        instance = form.save(commit=False)
        if not change or not instance.created_by:
            instance.created_by = user
        instance.modified_by = user
        instance.save()
        form.save_m2m()
        return instance

关于python - 使模型中的用户默认为当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670783/

相关文章:

python - 如何在不更改类型的情况下从 SearchQuerySet 获取 n 个搜索对象?

mysql - 将 Django 数据库后端从 MySql 更改为 PostgreSQL

python - 表有多个主键 Django

python - Django 迁移部分完成

python - MongoEngine 的嵌入式文档问题

python - Flask run 不起作用,但 python server.py 起作用!环境变量设置

python - 为什么我计算数字阶乘的算法的时间复杂度是 O(n^2) 而不是预期的 O(n)?

python - 如何在 Keras 中为 VGG16 微调预处理训练集?

python - 使用 Postman 进行 Django Rest Framework token 身份验证

python - 如何在 Django 管理界面中仅显示组成员?