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