我有一个包含三个字段的模型:
title= models.CharField(max_length=250)
cat1 = models.CharField(max_length=250, choices=(('g1',"Game1"), ("g2", "Game2"), ("g3", "Game3"), ("g4", "Game4")))
cat2 = models.CharField(max_length=250, choices=(('type1',"Drawn"), ("type2", "Computer graphic"), ("type3", "Pixelart")))
并且在filters.py中,我有:
import django_filters
from .models import MyModel
from django import forms
class ArtFilter(django_filters.FilterSet):
class Meta:
model = MyModel
fields = ['cat1', 'cat2', ]
不知道views.py在这种情况下是否重要,但这是:
def search(request):
art_list = MyModels.objects.all()
art_filter = ArtFilter(request.GET, queryset=art_list)
return render(request, 'search/art_search.html', {'filter': art_filter})
除了我需要让人们选择一种以上的游戏或美术类型之外,其他都很好,因此他们可以单击Game1,Game2和Drawn来查看两个游戏的所有绘制图像。我该如何实现?
将MultipleChoiceFilter(...)
--(django-filter doc)类用作,
MultipleChoiceFilter(...)