如何使用 javascipt 以编程方式单击按钮时为 django-select2 字段设置值?

问题描述

在我的 Django 应用程序中,我有一个 WorkerModel 和一个 ProvinceModel,每个工人都有一个 Province_id 字段。我已经使用 ModelSelect2Widget (django_select2) 为省 ID 定义了一个 Worker 表单。我想知道如何使用 javascript 为 Province_id 字段设置一个值。 我试过:

$('#id_province_id').val(province_id).trigger('change');

但不起作用。这是我的表单的定义

   from django_select2.forms import ModelSelect2Widget
    class WorkerForm(forms.ModelForm):
        
        class Meta:
            model = WorkerModel
            exclude = ("id",)
            widgets = {
                'name':forms.TextInput(attrs={'class': 'form-control'}),'province_id' : ModelSelect2Widget(model=ProvinceModel,queryset=ProvinceModel.objects.filter(),search_fields=['des_prov__icontains'],attrs={'style': 'width: 100%;'}),}

in the template

   <script>
//on a button click a want to set the value of province_id
     $(document).ready(function () {
    
                $('#id_province_id').djangoSelect2({
                    placeholder: 'Seleccione una opción',escapeMarkup: function (markup) { return markup; },language: {
                        noresults: function () {
                            return "No se encuentran resultados.";
                        }
                    }
    
     });
                });
    </script>

解决方法

你可以在你的 ajax 成功函数上试试这个:

success: function(data){
   // Assumes that data.result is your proovince id
   if(data.hasOwnProperty('result')){
       $('#id_province_id').val(data.result).trigger('change');
   }
}