当列表从" view.py"呈现时,模板无法获取此信息。 这是我的views.py:
class MyFavCourseView(LoginRequiredMixin, View):
def get(self, request):
course_list = []
fav_courses = UserFavorite.objects.filter(user=request.user, fav_type=1)
for fav_course in fav_courses:
course_id = fav_course.fav_id
course = Course.objects.filter(id=course_id)
course_list.append(course)
return render(request, 'usercenter-fav-course.html', {
"course_list": course_list
})
/urls.py:
url(r'^course/', include('courses.urls', namespace="course")),
/courses/urls.py:
url(r'^detail/(?P<course_id>\d+)/$', CourseDetailView.as_view(), name="course_detail"),
&#34; usercenter-fav-course.html&#34;中的链接:
{% for course in course_list %}
<div class="module1_5 box">
<a href="{% url 'course:course_detail' course.id %}">
<img width="214" height="190" src="{{ MEDIA_URL }}{{ course.image }}"/>
</a>
{% endfor %}
进入此页面时,发生错误: https://i.stack.imgur.com/PU8Vy.png
答案 0 :(得分:0)
你已经疏忽了
course_id = fav_course.fav_id
course = Course.objects.filter(id=course_id)
course_list.append(course)
通过跟随你已经附加了整个过程Queryset(即使它包含1个元素,它仍然不是那个元素,因为你只使用过滤器)作为数组的第一个元素,这使得course.id不存在或在模板世界中为null < / p>
你应该得到
course_id = fav_course.fav_id
# Get single course instead of filtering selection out
course = Course.objects.get(id=course_id)
course_list.append(course)