问题描述
在我的 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');
}
}