Ошибка при передаче отфильтрованных данных в шаблон. Обратное не найдено. попробован 1 шаблон (ы). Какой запрос следует использовать, чтобы избежать этой ошибки?

#django #django-models #django-views

#django #django-модели #django-просмотры

Вопрос:

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

Я попытался следовать официальной документации Django и стеку поиска, чтобы найти ответ, но ничего не нашел. Мои эксперименты также не дали мне никаких результатов.

представление

 def subcourse(request, course):
    if request.method == 'GET':
        course = Course.objects.get(slug=course)
        subcourses = Subcourse.objects.all().filter(course=course)
        context = {'subcourses': subcourses}
        return render(request, 'subcourse.html', context)
  

и мои модели:

 class Course(models.Model):
    slug = models.SlugField()
    title = models.CharField(max_length=120)
    thumbnail = models.ImageField(
        upload_to='images/courses',
        null=True,
        blank=True
        )
    position = models.IntegerField()

    def __str__(self):
        return self.title

class Subcourse(models.Model):
    slug = models.SlugField()
    title = models.CharField(max_length=120)
    course = models.ForeignKey(Course, on_delete=models.SET_NULL, null=True)
    thumbnail = models.ImageField(
        upload_to='images/subcourses',
        null=True,
        blank=True)
    position = models.IntegerField()

    def __str__(self):
        return self.title   
  

Это соответствующая часть моего подраздела course.html шаблон:

     {% for subcourse in subcourses %}
    <a href="{% url 'subcourse' lesson.slug %}">
        <div class="Training_types_cont">
            <img class="Training_types_img" src="{{subcourse.thumbnail.url}}">
            <span class="Training_types_txt"> {{subcourse.title}} </span>
        </div>
    </a>
    {% endfor %}
  

соответствующий URL-адрес:

 path('training/<slug:course>', views.subcourse, name='subcourse')
  

и текущее сообщение об ошибке

 Reverse for 'subcourse' with arguments '('',)' not found. 1 pattern(s) tried: ['training/(?P<course>[-a-zA-Z0-9_] )$']
  

Я прочитал документацию, касающуюся запросов и фильтров, но, похоже, не могу найти свою ошибку.

Комментарии:

1. добавьте свой subcourse.html файл тоже

2. добавлено, однако html также используется для другого шаблона, где я делаю то же самое, но не фильтрую модель. он также не является частью динамического URL.

3. «subcourse.slug» вместо «lesson.slug». Вот что я сказал, ккк