我需要在ModelMultipleChoiceFilter的选项中添加字段'All'。我不知道如何向查询集添加自定义值(“全部”)。
在我刚刚使用的MultipleChoiceFilter中:
shops = Shop.objects.filter(is_active=True)
SHOP_CHOICES = [('All', 'All')]
for x in shops:
SHOP_CHOICES.append((x.address, x))
SHOP_CHOICES = tuple(SHOP_CHOICES)
但是在ModelMultipleChoiceFilter中,我有queryset而不是tuple。
def departments(request):
if request is None:
return Shop.objects.none()
curr_user = request.user
return Shop.objects.filter(is_active=True, custom_user=curr_user)
class ShopFilter(django_filters.FilterSet):
address = django_filters.ModelMultipleChoiceFilter(queryset=departments)
我使用jquery和html解决了此问题
<script>
$('#id_address').prepend(new Option('All', 'All'))
</script>