Django_select2: Как отфильтровать набор запросов ModelSelect2Widget с данными запроса?(Django_tables2 + Django_filter + Django_select2) - PullRequest
1 голос
/ 18 июня 2019

Я использую django_tables2 с django_filter в соответствии с руководством django_tables2:

#views.py
from django_filters.views import FilterView
from django_tables2.views import SingleTableMixin

class FilteredCarListView(SingleTableMixin, FilterView):
    table_class = CarTable
    model = Car
    template_name = 'template.html'    
    filterset_class = CarFilter

def get_queryset(self):
    return self.model.objects.filter(owner_id=request.user.id)

Также я хочу использовать django_select2 в django_filter: я хочу иметь поле фильтра и его ModelSelect2Widget с тем же фильтром, что и в Filtered.(self).

Для поля фильтра я нашел это решение (думаю, это не СУХОЙ):

# filters.py
from .models import Car
from django_select2.forms import ModelSelect2Widget        

def get_cars(request):  
    return Car.objects.filter(owner_id=request.user.id)

class CarFilter(django_filters.FilterSet):
    car = django_filters.ModelChoiceFilter(
        queryset = get_cars,
        field_name='car',
        widget = ModelSelect2Widget(
        model = Car,
        search_fields=['car__icontains'])       

Но как ограничить выбор в ModelSelect2Widget для отображения только автомобилей текущего пользователя?

...