django - 将过滤后的数据传递给模板时出错。未找到反向。已尝试 1 种模式。应该使用什么查询来避免此错误?
问题描述
我正在尝试创建一个显示课程中所有子课程的动态 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
这是我的 sub 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 %}
相关网址是:
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_]+)$']
我已阅读有关查询和过滤器的文档,但似乎找不到我的错误。
解决方案
推荐阅读
- r - 填写data.table中缺失的日期
- python - 语音识别使用python检测特定单词
- django - Django AWS-S3 无法启动新线程
- python - kivy:TypeError:“NoneType”对象不可下标
- amazon-web-services - AWS 中的负载均衡器和目标组有什么区别?
- c# - System.ArgumentNullException: '值不能为空。Arg_ParamName_Name'
- python - Tensorflow 没有为任何变量提供梯度
- .net-core - MassTransit 和 Azure 服务总线:所有已创建订阅的 EnableDeadLetteringOnMessageExpiration
- excel - 使用 VBA 将 Excel 图表粘贴到 PPT 时嵌入单个工作表
- .htaccess - 如何在生成的 url 中订购动态参数的应用?