Django admin 用户ForeignKey 的默认值

发布于 2024-11-01 05:31:41 字数 252 浏览 0 评论 0原文

author = models.ForeignKey(User)

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

这篇文章介绍如何在保存过程中更新它,只需不在编辑时。

author = models.ForeignKey(User)

Is there any way I can set the default value of this field to automatically select the logged in user? I know you can do this in the save method but my client has requested that it automatically defaults to the logged in user at edit time to avoid confusion.

This article goes into how to update it during save, just not at edit time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独难免 2024-11-08 05:31:41
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
        )
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
        )
粉红×色少女 2024-11-08 05:31:41

如果您正在编辑的对象是新的,您可以覆盖模型的管理部分,以不显示作者,因为它应该设置为当前用户,并且只有当您正在编辑对象时,该字段才会显示?

您可以通过重写 ModelAdmin 的 get_form 方法来完成此操作。

You could override the Admin part of your model to not display the author if the object that you are editing is new because it should be set to the current user and only if you are editing an object does the field show?

You would do this by overriding the get_form method of ModelAdmin.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文