【发布时间】:2022-07-07 23:43:02
【问题描述】:
我有一个小组的表格和模型:
class GroupForm(forms.ModelForm):
class Meta:
model = Group
fields = ('leader', 'description', 'size', 'max_size', 'motto')
widgets = {
'size': forms.CheckboxInput(attrs={'id': 'size'}),
'max_size': forms.TextInput(attrs={'type': 'hidden', 'id': 'maxSize'}),
}
该组的创建者可以选择检查size 的“是”,然后我使用javascript 将max_size 的类型更改为show。
在我的create_group.html 模板中:
<script>
let size = document.getElementById('size')
let maxSize = document.getElementById('maxSize')
let checked = false
size.onclick = () => {
checked = !checked
if (checked === true) {
maxSize.type = 'show'
} else {
maxSize.type = 'hidden'
}
}
</script>
现在,这工作正常,唯一的问题是字段显示无序。
当页面加载时,max_size 为false,并且其字段不显示。哪个好。但是,当用户检查该组的大小,并且随后max_size 显示为show 时,该字段显示在座右铭字段之后,并且根据fields = ('leader', 'description', 'size', 'max_size', 'motto') 以不正确的顺序显示。
此外,max_size 字段包含在 motto 元素本身中,而不是作为其自己的字段:
对比其他字段都在自己的<p></p>中。
【问题讨论】:
标签: django django-models django-forms django-templates