Django - Представление на основе класса для определенного элемента c - PullRequest
0 голосов
/ 26 февраля 2020

Создание приложения Django, в котором у меня есть вид, отображающий список отдельных случаев. Когда вы нажимаете на случай, я бы хотел, чтобы он перешел к списку элементов, связанных с делом (в данном случае это список устройств). Проблема, с которой я сталкиваюсь, я не знаю, как заставить представление отображать только элементы, относящиеся к этому случаю (сейчас он отображает каждый элемент в каждом случае).

Просмотры:

class MdeListView(LoginRequiredMixin, ListView):
    model = Mde
    template_name = 'mde/mde.html'
    ordering = [F('date').desc()]

    def get_queryset(self):
        return Mde.objects.distinct('case_number')


class MdeCaseListView(LoginRequiredMixin, ListView):
    model = Mde
    template_name = 'mde/mde_case_list.html'

urls.py

from django.urls import path

from .views import MdeListView, MdeCreateView, MdeCaseListView

urlpatterns = [
    path('<int:pk>/list', MdeCaseListView.as_view(), name='mde_case_list'),
    path('new', MdeCreateView.as_view(), name='mde_new'),
    path('', MdeListView.as_view(), name='mde'),
]

URL-адрес идет в нужную запись на основе первичного ключа, но оттуда я хочу только элементы, которые используют тот же case_number, что и этот первичный ключ.

1 Ответ

0 голосов
/ 26 февраля 2020

Я смог понять это!

class MdeCaseListView(LoginRequiredMixin, ListView):
    model = Mde
    template_name = 'mde/mde_case_list.html'

    def get_queryset(self):
        pkey = self.kwargs.get("pk")
        case = Mde.objects.filter(id=pkey).values_list('case_number', flat=True)
        return Mde.objects.filter(case_number=case[0])
...