Вы близки, self.kwargs
- это словарь, который отображает строки на соответствующее значение, извлеченное из URL, поэтому вам нужно использовать строку, содержащую 'device'
здесь:
class DefaultsListView(LoginRequiredMixin,ListView):
model = models.DefaultDMLSProcessParams
template_name = 'defaults_list.html'
login_url = 'login'
def get_queryset(self):
return models.DefaultDMLSProcessParams.objects.filter(
device<b>_id</b>=self.kwargs[<b>'device'</b>]
)
Вероятно, лучше использовать devide_id
здесь, поскольку тогда синтаксически ясно, что мы сравниваем идентификаторы с идентификаторами.
Это также может быть более "идиоматическим" длясделать вызов super()
, так что если вы позже добавите миксины, они могут «предварительно обработать» вызов get_queryset
:
class DefaultsListView(LoginRequiredMixin,ListView):
model = models.DefaultDMLSProcessParams
template_name = 'defaults_list.html'
login_url = 'login'
def get_queryset(self):
return super(DefaultsListView, self)<b>.get_queryset()</b>.filter(
device_id=self.kwargs['device']
)