Python Django select2尝试实现依赖字段时未找到任何结果

Python Django select2尝试实现依赖字段时未找到任何结果,python,django,jquery-select2,Python,Django,Jquery Select2,我正在尝试实现相关的选择字段,如图所示 我的模型如下所示: class VehicleBrand(BaseModel): """Brands for types of vehicles""" name = models.CharField(_('Name'), max_length=50) def __str__(self): return self.name class VehicleModel(BaseModel):

我正在尝试实现相关的选择字段,如图所示

我的模型如下所示:

class VehicleBrand(BaseModel):
"""Brands for types of vehicles"""

name = models.CharField(_('Name'), max_length=50)

def __str__(self):
    return self.name


class VehicleModel(BaseModel):
"""vehicle model"""

brand = models.ForeignKey(
    'awesomeinventory.VehicleBrand',
    verbose_name=_('Brand of the vehicle'),
    on_delete=models.CASCADE,
    related_name='models',
)
name = models.CharField(_("Vehicle model name"), max_length=50)

def __str__(self):
    return self.name
My forms.py看起来像:

class MarketTrackForm(forms.Form):
brand = forms.ModelChoiceField(
    queryset=VehicleBrand.objects.all(),
    to_field_name='name',
    label=u'Brand',
    widget=ModelSelect2Widget(
        model=VehicleBrand,
        search_fields=['name__icontains'],
        attrs={'style': 'width: 100%', 'data-minimum-input-length': 0},
    ),
)
model = forms.ModelChoiceField(
    queryset=VehicleModel.objects.all(),
    to_field_name='name',
    label=u'Model',
    widget=ModelSelect2Widget(
        model=VehicleModel,
        search_fields=['name__icontains'],
        dependent_fields={'brand': 'brand'},
        max_results=500,
        attrs={
            'style': 'width: 100%',
            'data-minimum-input-length': 0,
        },
    ),
)
我的URL.py

urlpatterns += i18n_patterns(
...
path('select2/', include('django_select2.urls')),
...
)

我的设置看起来像

...
    CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
    },
    'select2': {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/2",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
    },
}

# Set the cache backend to select2
SELECT2_CACHE_BACKEND = 'select2'
...
当我删除依赖字段时,一切都正常。此外,我还试图复制文档(国家和城市模型)中显示的确切示例,即使这样也不起作用。当我添加依赖字段时,若我从它工作的表单中删除依赖字段,它只会开始说找不到结果(在选择依赖字段之后)。所以我想可能是关于设置或缓存。但是我想不出来。任何提示都会有帮助,谢谢

---更新---

当我移除

kwargs.update(
    {
        f"{model_field_name}__in": filter(
            None, self.request.GET.get(f"{form_field_name}[]", "").split(",")
        )
        for form_field_name, model_field_name in self.widget.dependent_fields.items()
    }
)

此代码来自select2.views.AutoResponseView,它刚刚开始工作。我不想把它弄糟。我如何在不删除这堆代码的情况下修复它,甚至这堆代码都做了什么?有人吗?

在较新版本的select2依赖字段中,我猜是从普通模式select2widget中降价的。“文档”仍会显示,但这是一个适合我的解决方案:

将ModelSelect2Widget转换为forms中的ModelSelect2MultipleWidget