错误 - 未定义变量:'ModelSelect2Widget'

问题描述

我是这个领域的新手。我正在研究相关下拉列表,我参考了 here。使用以下代码复制相同内容

Forms.py

class AddressForm(forms.ModelForm):
   class Meta:
       model=City
       country = forms.ModelChoiceField(
          queryset=Country.objects.all(),label=u"Country",widget= ModelSelect2Widget(
            search_fields=['name__icontains'],dependent_fields={'city': 'cities'},)
       )

   city = forms.ModelChoiceField(
       queryset=City.objects.all(),label=u"City",widget=ModelSelect2Widget(
           search_fields=['name__icontains'],dependent_fields={'country': 'country'},max_results=500,)
   )

出现错误

未定义变量:'ModelSelect2Widget'

我也安装了:

INSTALLED_APPS=[
                'django_select2','django_q',]

解决方法

问题在于您的导入。在 Select2 中,ModelSelect2Widget 类位于表单模块中。 所以你的导入应该如下:

from django_select2.forms import ModelSelect2Widget


class AddressForm(forms.ModelForm):
   class Meta:
       model=City
       country = forms.ModelChoiceField(
          queryset=Country.objects.all(),label=u"Country",widget= ModelSelect2Widget(
            search_fields=['name__icontains'],dependent_fields={'city': 'cities'},)
       )

   city = forms.ModelChoiceField(
       queryset=City.objects.all(),label=u"City",widget=ModelSelect2Widget(
           search_fields=['name__icontains'],dependent_fields={'country': 'country'},max_results=500,)
   )