带有多选复选框的Django objects.filter()

时间:2015-04-06 09:28:46

标签: django django-models

我有一个MultiSelectField(https://pypi.python.org/pypi/django-multiselectfield),我试图在我的应用中实现一些基本搜索。我希望过滤器在其中一个复选框与查询匹配时返回结果。

e.g。

  1. 选项A
  2. 选项B
  3. 假设存在选项A和选项B(即,在数据库中,存在A,B),则选择它们中的任何一个(A或B)应该返回该行。 __in在我的案例中似乎无效。我该如何实现呢?

    编辑:一些代码:

    models.py

    class UserProfile(models.Model):
        CHOICES = (
            ('1', ‘a'),
            ('2', ‘b'),
            ('3', ‘c'),
        )
    
        foo = MultiSelectField(choices=CHOICES)
    

    views.py

    def search(request):
        if request.method == 'POST':
            form = SearchForm(request.POST)
            if form.is_valid():
                foo = request.POST.getlist('foo')
                profiles = UserProfile.objects.filter(foo=foo)
    

    我尝试了UserProfile.objects.filter(foo__in=foo),但它似乎无法正常工作。

0 个答案:

没有答案