我试图通过在字段Select2
中放置一个占位符到empty_label
中。现在我得到了错误:
TypeError: __init__() got multiple values for keyword argument 'empty_label'
这是我的代码:
self.fields['work_types'] = ModelMultipleChoiceField(
queryset=WorkTypes.objects.filter(
white_label_client=logged_in_user.white_label_client,
deleted=False),
empty_label='Type',
required=False)
我必须更改什么?
答案 0 :(得分:0)
根据comments here,这是Django中的当前错误。其中一位用户说:
“看一下,我想这是设计使然。您不应在多选字段上使用空标签。也许应该在文档中对此进行澄清。
说,如果您确实希望在多选字段上使用空标签,则可以创建自己的类,该类可以根据需要初始化empty_label。”
进一步的解释
“好吧,这是一个错误。这是Python错误。基本上,您正在传递一个关键字参数(empty_label),而该类正在传递相同的关键字参数empty_label。扩展出来,这就是发生的情况: “
field = forms.ModelMultipleChoiceField( queryset = Imodelclass.objects.all(), empty_label='------------' ) = ModelMultipleChoiceField(queryset= Imodelclass.objects.all(), empty_label=None, empty_label='------------')
“当您阅读错误时,您会发现在这种情况下实际上非常清楚:您为同一关键字传递了两个参数。”
“我认为在文档中提及这一点是明智的;也许甚至提供了ModelMultipleChoiceField不应具有空标签的理由。但是,如果背后没有任何理由,那么明确的解决方案是完全按照您的意愿做做到了:从超级调用中删除empty_label关键字参数。”