Django的模板无法获得列表

时间:2017-11-22 12:02:14

标签: python django

当列表从" 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

1 个答案:

答案 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)