【发布时间】:2019-01-07 11:18:32
【问题描述】:
在我发布这个问题之前,我尝试了几种解决方案,但没有 vien,可能是因为我在 django 和 web 开发方面经验不足。 我想在面包屑导航菜单中显示课程名称。但是,它显示空白。使用Django 2.1.4,模型如下:
class Course(model.Model):
title = models.CharField(max_length=128)
description = RichTextUploadingField(default='No description available.')
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('course-detail', kwargs={'pk': self.pk})
编辑:添加课程模型
课程模型与课程有多对多的关系。如下:
class Lesson(models.Model):
title = models.CharField(max_length=512)
content = RichTextUploadingField()
course = models.ManyToManyField(Course)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('lesson-detail', kwargs={'pk': self.pk})
views.py 包含以下视图
class CourseListView(ListView):
model = Course
template_name = 'courses/courses.html'
context_object_name = 'courses'
paginate_by = 10
class CourseDetailView(DetailView):
model = Course
template_name = 'courses/course-detail.html'
class LessonDetailView(DetailView):
model = Lesson
template_name = 'courses/lesson-details.html'
urlpatterns 包括以下内容:
path('', CourseListView.as_view(), name = 'course-list'),
path('course/<int:pk>/', CourseDetailView.as_view(), name = 'course-detail'),
path('lesson/<int:pk>/', LessonDetailView.as_view(), name = 'lesson-detail'),
在lesson-detail的html模板中,包含以下面包屑导航:
<!-- ##### Breadcumb Area Start ##### -->
<div class="breadcumb-area">
<!-- Breadcumb -->
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'home' %}">Home</a></li>
<li class="breadcrumb-item"><a href="{% url 'course-list' %}">Courses</a></li>
<li class="breadcrumb-item"><a href="{{ course.get_absolute_url }}">{{course.title}}</a></li> {% comment%} This doesn't work {%endcomment%}
<li class="breadcrumb-item active" aria-current="page">{{ lesson.title }}</li>
<li></li>
</ol>
</nav>
</div>
我怎样才能让它工作?课程标题是“音乐”,所需的输出类似于HOME / COURSES / MUSIC / FLUTE。我希望能够在网站的多个位置包含课程的 url,包括运行文本。
非常感谢您的帮助!
【问题讨论】:
标签: python-3.x url django-views breadcrumbs django-2.1