【发布时间】:2021-12-25 15:29:13
【问题描述】:
我正在尝试将数据库中的所有课程返回到我的课程网址,但出现此错误
在 /course/ 的 NoReverseMatch
找不到“course_detail”的反向。 “course_detail”不是有效的视图函数或模式名称。
这是我的代码
class Courses(models.Model):
category = models.ForeignKey(Category, related_name='courses', on_delete=models.CASCADE, null=True)
name = models.CharField(max_length=100)
description = models.TextField()
cover = models.ImageField(blank=True, null=True, upload_to="courses_cover/")
slug = models.SlugField()
# Courses content
content_url = models.URLField(blank=True, null=True)
content_file = models.FileField(blank=True, null=True)
price = models.PositiveIntegerField(default=1)
available = models.BooleanField(default=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
ordering = ('name',)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('courses:course_detail', args=[self.id, self.slug])
def price_display(self):
return "{0:.2f}".format (self.price / 100)
views.py 的代码
def course_list(request, category_slug=None):
category = None
categories = Category.objects.all()
courses = Courses.objects.filter(available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
courses = courses.filter(category=category)
return render(request,'courses/content/list.html', {'category': category, 'categories': categories, 'courses': courses})
def course_detail(request, id, slug):
course = get_object_or_404(Courses, id=id, slug=slug, available=True)
return render(request, 'courses/content/detail.html', {'course': course})
课程网址的代码
app_name = "courses"
urlpatterns = [
path('', views.course_list, name='course_list'),
【问题讨论】:
-
您的网址中没有
course_detail路径/视图? -
谢谢这个作品...我忘记添加 course_detail 的路径
标签: python django django-views django-urls