Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django'中设置表单字段的初始值;s admin formfield_for_foreignkey_Django - Fatal编程技术网

在Django'中设置表单字段的初始值;s admin formfield_for_foreignkey

在Django'中设置表单字段的初始值;s admin formfield_for_foreignkey,django,Django,我的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) 模型中受

我的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 = models.ForeignKey(User, on_delete=models.CASCADE)
我想从中得到的是
受影响的用户
指定了特定的初始值。不幸的是,它似乎不起作用,因为我从表中获得最初的记录作为初始值,而请求的用户在中间有ID。
有人能解释一下原因吗?我可以肯定的是,is正确地输入了这个if语句。但是没有保留我的初始值。

kwargs['initial']={'impacted_user':request.user.id}@AndreyMaslov不幸没有帮助。将此代码移动到
get_form(request,obj=None,**kwargs)
方法,而不是
formfield_for_foreignkey
@AndreyMaslov当移动到get_form时,这是错误
modelform\u factory()获取了一个意外的关键字参数“initial”
抱歉,我的错误。补充回答谢谢你的回答!但还是没用。我不知道这是为什么。我已经检查了这个方法,它应该会正确返回。我会继续挖掘。我们需要提供
用户
,而不是
id
,已更改的答案。我认为我面临的问题是(至少目前)由于从未调用
获取更改表单\初始数据(自我,请求)
。我添加了简单打印,但它没有显示。它只为新对象调用此方法,这是我没有得到的。谢谢,这解释了很多!
def get_changeform_initial_data(self, request):
    return {'affected_user': request.user}