#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». Вот что я сказал, ккк