代码之家  ›  专栏  ›  技术社区  ›  Milano

select2-不显示/删除初始值

  •  1
  • Milano  · 技术社区  · 6 年前

    我用 django-filter 用于筛选 Article 奎丽斯特。 条款 有一个领域 locations :

    locations = models.ManyToManyField('locations.Location', related_name='articles')
    

    I过滤器 Articles 按字段 位置 作为一个小部件,我使用 django-autocomplete-light 小装置 Select2Multiple

    class ArticleFilter(django_filters.FilterSet):
        from locations.models import Location
        ...
        locations = django_filters.ModelMultipleChoiceFilter(method='locations_filter',queryset=Location.objects.all(),label='Lokality')
        ...
    
        class Meta:
            model = Article
            fields = ['locations','title','price_lte','price_gte','price_currency'
            ]
    
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            # HERE I SPECIFY THE DAL WIDGET
            self.form.fields['locations'].widget = autocomplete.Select2Multiple(url="locations:locations_autocomplete")
    

    过滤效果很好,也可以自动完成: enter image description here

    当我单击submit时,它正确地显示了过滤结果,url querystring包含所有过滤属性,包括exmaple locations=45 但它没有显示 location 具有 id=45 作为 位置 字段。

    enter image description here

    奇怪的是,如果我删除小部件,我可以看到原来,有一个初始值:

    enter image description here

    只是 Select2 不显示,位置值为 undefinfed .

    我在生的时候也用同样的方法 django.forms 而且工作正常。首字母也是。

    你知道哪里会有问题吗?

    0 回复  |  直到 6 年前