首页 > 解决方案 > 在 Django 的管理 formfield_for_foreignkey 中设置表单字段的初始值

问题描述

我的 Django 管理员中有以下代码:

def formfield_for_foreignkey(self, db_field, request, **kwargs):
     if db_field.name == 'affected_user':
         kwargs['initial'] = request.user.id
     return super().formfield_for_foreignkey(db_field, request, **kwargs)

模型中的affected_user字段如下所示:

affected_user = models.ForeignKey(User, on_delete=models.CASCADE)

我想从中得到的是affected_user分配了特定的初始值。不幸的是,它似乎不起作用,因为我从表中获取第一条记录作为初始值,而请求的用户在中间有 ID。

有人可以解释这是为什么吗?我可以肯定的是,它正确地输入了这个 if 语句。但不保留我的初始值。

标签: django

解决方案


def get_changeform_initial_data(self, request):
    return {'affected_user': request.user}

推荐阅读