現在、いくつかのフォームをレンダリングする 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 -->
...
どんな助けでも大歓迎です!