django - 使用Django admin的用户ForeignKey的默认值

标签 django django-admin

author = models.ForeignKey(User)

有什么方法可以设置此字段的默认值以自动选择登录的用户?我知道您可以在save方法中执行此操作,但是我的客户已要求它在编辑时自动默认为登录用户,以避免混淆。

This article讨论了如何在保存期间(而不是在编辑时)更新它。

最佳答案

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'author':
            kwargs['initial'] = request.user.id
        return super(MyModelAdmin, self).formfield_for_foreignkey(
            db_field, request, **kwargs
        )

关于django - 使用Django admin的用户ForeignKey的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632848/

相关文章:

python - 如何在 django admin 中对我自己的字段进行过滤器?

django - 如何将 Django 模型的一个字段的值设置为等于其他 Django 模型的其他字段

python - 运行函数时导入的模块变为 None

带 Stripe 的 Python/Django : Error in Post request in creating stripe subscription

python - django-avatar 的数据库错误

python - 如何在内联模型管理中自定义为 ManyToManyField 显示的标签?

python - 基于组的Django admin is_staff

python - 一个模型 django 的两个管理类

python - Django 多重继承 E005

python - 使用 Django 存储数据库设置的最佳方式是什么?