gpt4 book ai didi

django-forms - Django 表单 __init__() 为关键字参数获得了多个值

转载 作者:行者123 更新时间:2023-12-03 10:31:54 25 4
gpt4 key购买 nike

您好,我正在尝试使用修改后的 __init__ form 方法,但我遇到以下错误:

TypeError
__init__() got multiple values for keyword argument 'vUserProfile'

我需要通过 UserProfile到我的表格,到 dbname字段,我认为这是一个解决方案(我的表单代码):

class ClienteForm(ModelForm):
class Meta:
model = Cliente

def __init__(self, vUserProfile, *args, **kwargs):
super(ClienteForm, self).__init__(*args, **kwargs)
self.fields["idcidade"].queryset = Cidade.objects.using(vUserProfile.dbname).all()

对构造函数的调用 ClienteForm()没有 POST 是成功的,并向我展示正确的表格。但是当提交表单并使用 POST 调用构造函数时,我得到了前面描述的错误。

最佳答案

您已更改表单 __init__ 的签名方法使vUserProfile是第一个参数。但在这里:

formPessoa = ClienteForm(request.POST, instance=cliente, vUserProfile=profile)

你通过 request.POST作为第一个参数 - 除了这将被解释为 vUserProfile .然后你也尝试通过 vUserProfile作为关键字参数。

实际上,您应该避免更改方法签名,而只需从 kwargs 获取新数据即可。 :
def __init__(self, *args, **kwargs):
vUserProfile = kwargs.pop('vUserProfile', None)

关于django-forms - Django 表单 __init__() 为关键字参数获得了多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com