首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-select2:如果没有选择国家,如何禁用城市选择?(django 2.2)

django-select2:如果没有选择国家,如何禁用城市选择?(django 2.2)
EN

Stack Overflow用户
提问于 2019-04-24 08:47:22
回答 1查看 1.5K关注 0票数 1

我尝试使用像这样的依赖字段:

代码语言:javascript
复制
class AddressForm(forms.Form):
country = forms.ModelChoiceField(
    queryset=Country.objects.all(),
    widget=ModelSelect2Widget(
        model=Country,
        search_fields=['name__icontains'],
    )
)

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

但是,如果没有国家被选中,伦敦金融城的选择也是可用的。我想限制用户选择城市而不选择国家。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 09:53:07

来自医生:https://django-select2.readthedocs.io/en/latest/extra.html#chained-select2

相互依存的select2

此外,您可能不希望将用户限制为应首先选择哪个字段。相反,您希望向用户建议任何select2的选项,这取决于他在另一个选择中的选择。

以下列方式自定义表单:

代码语言:javascript
复制
class AddressForm(forms.Form):
    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,
        )
    )

您可以尝试在init中为字段添加一个初始值。

代码语言:javascript
复制
def __init__(self,*arg, **kwargs):
    super(AddressForm,self).__init__(*arg, **kwargs)
    self.initial['city'] = ''

如果您想限制用户选择城市,您必须在前端进行选择,django没有办法在提交表单之前控制用户选择的内容(或者每次国家变化时都必须进行ajax调用)。

如果您正在考虑使用另一种解决方案,这就是我通常使用的方法(它可以实现您想要的):https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55825938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档