我正在尝试使用Django编写表单,但我没有设置Select字段的名称。
class MyForm(forms.Form):
successor = forms.ChoiceField(widget=forms.Select(
attrs = {'name': 'to_player', 'onclick':'this.form.submit();'}
)
)
给出这个输出:
<label for="id_successor">Successor:</label>
<select id="id_successor" name="successor" onclick="this.form.submit();"></select>
但应该是name =“to_player”而不是name =“successor”。为什么呢?
答案 0 :(得分:0)
我认为name
属性无法使用attrs
覆盖,因为窗口小部件的呈现方式。但是,如果您签出this answer to a similar question,您将找到一个包装函数,允许您指定自己的名称属性。
答案 1 :(得分:0)
我使用javascript解决了这个问题。
您可以在表单中添加id属性:
class MyForm(forms.Form):
successor = forms.ChoiceField(widget=forms.Select(attrs = {'id':'id_player', 'name': 'to_player','onclick':'this.form.submit();'} ))
在模板的末尾,您可以输入以下javascript代码:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
...
...
<script type="text/javascript">
$(document).ready(function(){
document.getElementById('id_player').name = 'to_player';
});
</script>
</body>
</html>
通过这种方式我解决了这个问题。并且100%工作!
度过美好的一天!