我目前正在 Django 中制作一个呈现一些表单的模板。我有多个配置文件模型,它们根据用户的用户类型保存特定数据。例如,我有一个包含公司名称的公司资料和一个包含个人电话号码的客户资料。我有一个 ChoiceField 用于确定填写表单的用户类型,并根据用户选择的内容显示一组特定字段。当用户做出选择时,我正在使用 JQuery 使特定的隐藏字段可见。
我遇到的问题是其他模型需要一些未显示的字段。因此,假设公司资料需要公司名称,而客户资料需要个人电话号码。如果用户选择公司作为他们的类型,我的模板将返回个人电话号码字段的错误并且不提交。有没有办法使用 Django、JQuery 或其他方法根据用户选择禁用、删除或忽略不必要的字段?
这是我目前隐藏信息的方式:
<script type="text/javascript">
$(document).ready(function() {
$("#id_user_type").change(function(){
$(".user-type-wrapper").slideUp('500');
$("#user-type-"+$(this).val()).slideDown('500');
});});
</script>
该脚本正在影响我模板的这一部分:
...
<div class="field">
{{ form.user_type.errors }}
<label for="id_user_type">User Type:</label>
{{ form.user_type }}
</div>
<!-- Company Specific Form Content -->
<div class="user-type-wrapper" id="user-type-CO" style="display: none;">
<div class="field">
{{ form.company_name.errors }}
<label for="id_company_name">Company Name:</label>
{{ form.company_name }}
</div>
</div>
<!-- End Company Specific Form Content -->
<!-- Customer Specific Form Content -->
<div class="user-type-wrapper" id="user-type-CU">
<div class="field">
{{ form.phone_number.errors }}
<label for="id_phone_number">Phone Number:</label>
{{ form.phone_number }}
</div>
</div>
<!-- End Customer Specific Form Content -->
...
任何帮助将不胜感激!