我有一张表格:
class ProjectInfoForm(forms.Form):
module = forms.ModelChoiceField(
queryset=Module.objects.all(),
)
piece = forms.ModelChoiceField(
queryset=Piece.objects.all(),
required=False,
)
使用ajax从第一个字段填充第二个字段。但是,像这样实例化它并不是非常有效,因为它意味着第二个字段在页面加载时不成功填充(更不用说在它应该之前填充字段)。
所以我尝试将其更改为:
...
piece = forms.ModelChoiceField(
queryset=Piece.objects.none(),
required=False,
)
我得到了所需的结果,但当然表格没有验证它没有选择要检查。
我是否有某种方法可以在不填充表格的情况下验证表单,甚至可以更好地将两个字段一起验证为相关模型?
任何帮助都非常感激。
答案 0 :(得分:1)
我认为更简单的方法就是推销自己的方式。你只需要:
ChoiceField
。使用coerce
可以透明地将ID转换为对象Piece
的有效Module
列表的视图。Module
和Piece
是否对应的服务器端验证方法