Я создаю простое приложение для автосалона в Django 3, в котором при переходе на страницу сведений о категории в нем должны быть перечислены все автомобили, принадлежащие этой категории, поэтому в моем случае объекты автомобилей являются зависимыми объектами соответствующей категории. , Я пытался реализовать это, используя метод get_context_data () и ссылаясь на две соответствующие модели в DetailView, вот мой код
models.py категория
from django.db import models
from django.urls import reverse
# Create your models here.
class Category(models.Model):
name = models.CharField(null=False, blank=False, max_length=20)
description = models.TextField(null=False, blank=False, max_length=120)
image = models.ImageField(upload_to='images/')
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('category_detail', args=[str(self.id)])
models.py cars
from django.db import models
from django.urls import reverse
from categories.models import Category
# Create your models here.
class Car(models.Model):
image = models.ImageField(upload_to='images/cars/')
make = models.CharField(null=False, blank=False, max_length=30)
model = models.CharField(null=False, blank=False, max_length=30)
year = models.IntegerField(null=False, blank=False)
transmission = models.CharField(null=False, blank=False, max_length=30)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.model
def get_absolute_url(self):
return reverse('car_detail', args=[str(self.id)])
просмотры категорий
from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Category
from cars.models import Car
# Create your views here.
class CategoryList(ListView):
model = Category
template_name = 'category_list.html'
class CategoryDetailView(DetailView):
model = Category
template_name = 'category_detail.html'
def get_context_data(self, *args, **kwargs):
context = super(CategoryDetailView, self).get_context_data(
*args, **kwargs)
context['category_cars'] = Car.objects.filter(
category=self.request.name)
return context
ссылки категорий
from django.urls import path
from .views import CategoryList, CategoryDetailView
urlpatterns = [
path('categories/', CategoryList.as_view(), name='categories'),
path('categories/<int:pk>/', CategoryDetailView.as_view(), name='category_detail')
]
, поэтому использование моей вышеописанной реализации приводит к ошибке
какие-либо предложения для достижения желаемой функциональности?