Как использовать get_queryset внутри списка - PullRequest
0 голосов
/ 21 апреля 2020

Я изо всех сил пытаюсь использовать простой get_queryset внутри просмотра списка. Цель состоит в том, чтобы просто отфильтровать наборы, связанные с данным круизом. Мои модели выглядят так:

from django.db import models


class Cruise(models.Model):
    name = models.CharField(max_length=50)
    start_date = models.CharField(max_length=50)
    end_date = models.CharField(max_length=50)
    team_leader = models.CharField(max_length=50)

    def __str__(self):
        return self.name


class Set(models.Model):
    cruise = models.ForeignKey(Cruise, on_delete=models.CASCADE)
    set_number = models.IntegerField()
    start_depth = models.IntegerField()
    end_depth = models.IntegerField()

мои URL выглядят так:

from django.urls import path
from . views import (CruiseListView, CruiseUpdateView, SetListView)
from . import views

urlpatterns = [
...
    path('cruise/list/', CruiseListView.as_view(), name='app-cruise_list'),
    path('cruise/update/<pk>/', CruiseUpdateView.as_view(), name='cruise-update'),
    path('set/list/', SetListView.as_view(), name='set_list'),
]

, а вид проблематики c выглядит следующим образом:

class SetListView(ListView):
    model = Set  
    template_name = 'app/set_list.html'  
    context_object_name = 'sets' 
    #queryset = Set.objects.filter(cruise_id=1)

    def get_queryset(self):
        cruise_id = self.request.Cruise.id
        return Set.objects.filter(cruise_id=self.kwargs['cruise_id'])

Как я могу отфильтровать и получить только наборы, связанные с данным круизом? Я получаю KeyError для cruise_id.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...