миха капа Asked:2024-02-13 12:32:24 +0000 UTC2024-02-13 12:32:24 +0000 UTC 2024-02-13 12:32:24 +0000 UTC Django 表单 - 例如,在选择 ChoiseField 中的选项之一时如何使小部件处于非活动状态? 772 Django 表单 - 在选择 ChoiseField 中的选项之一时如何使小部件处于非活动状态?也就是说,我有一个具有两个条件的 ChoiseField 小部件。当您选择其中一个条件时,您需要停用另一个字段,例如 TextField。 python 2 个回答 Voted Vladyslav 2024-02-15T13:35:44Z2024-02-15T13:35:44Z 在 Django 中,要创建具有动态行为的表单(例如在 ChoiceField 中选择选项时停用字段),您可以将 JavaScript 与 Django 表单结合使用 <!-- Пример кода для формы --> <form id="myForm" method="post" action="{% url 'my_url' %}">{% csrf_token %} {{ form.my_choice_field }} {{ form.my_text_field }} </form> <script> document.addEventListener('DOMContentLoaded', function() { const choiceField = document.getElementById("id_my_choice_field"); const textField = document.getElementById("id_my_text_field"); choiceField.addEventListener('change', function() { if (choiceField.value === 'option_A') { textField.disabled = true; // Деактивация поля } else { textField.disabled = false; // Активация поля } }); }); </script> Best Answer миха капа 2024-03-13T16:26:47Z2024-03-13T16:26:47Z 此解决方案有帮助:将此类添加到类中的 admin.py 文件中 @admin.register(Ваша_модель) class Ваша_модель_Admin(admin.ModelAdmin): (末尾的逗号是必需的,因为这是一个元组 - 没有它将会出现错误): class Media: js = ( 'path_to_file/js/disable_db_widget.js',) 和这个脚本(可能对某人有用): (function($) { console.log('From test3.js '); $(document).ready(function() { $('#id_IS_PATH').change(function() { if ($(this).val() == '1' || $(this).val() == '2') { console.log($(this)) $('#id_DB_SERVICE').attr('disabled', true); $('#id_DB_SERVICE').closest('.form-row').addClass('disabled-field'); $('#id_DB_SERVICE').val( '41'); } else { $('#id_DB_SERVICE').attr('disabled', false); $('#id_DB_SERVICE').closest('.form-row').removeClass('disabled-field'); } }); }); })(django.jQuery);
在 Django 中,要创建具有动态行为的表单(例如在 ChoiceField 中选择选项时停用字段),您可以将 JavaScript 与 Django 表单结合使用
此解决方案有帮助:将此类添加到类中的 admin.py 文件中
(末尾的逗号是必需的,因为这是一个元组 - 没有它将会出现错误):
和这个脚本(可能对某人有用):