反向 Django 出错
Error with reverse Django
我有以下错误
Reverse for 'classroom' with arguments '()' and keyword arguments
'{u'lesson_id': ''}' not found. 1 pattern(s) tried: ['classroom/(?P<lesson_id>\d+)/$']
models.py:
class DocumentLesson(Lesson):
document_number = models.ForeignKey('Lesson', related_name='doc_number')
text = models.TextField(blank=True, null=True)
def get_absolute_url(self):
return reverse('classroom', args=[self.id])
urls.py:
url(r'^classroom/(?P<lesson_id>\d+)/$', login_required(classroom), name='classroom'),
views.py:
def classroom(request, lesson_id=None):
print 'I am lesson id %s' % lesson_id
lesson = DocumentLesson.objects.select_related().get(id=lesson_id)
print ' I am lesson %s' % lesson
return render(request, 'web/document_lesson.html',{'lesson': mark_safe(lesson.text)})
和模板:
<a href="{% url 'classroom' lesson_id=lesson.id %}" ></a>
我找不到问题,在课堂作业中打印,但仍然抛出错误。
如果我在这样的模板中制作 link
<a href="{% url 'classroom' lesson_id=3 %}" ></a>
一切正常,没有错误。
请指教哪里有问题
您正在将 lesson.text
作为模板上下文中的课程变量传递。它没有 id 字段,这就是错误显示该值的空字符串的原因。
改为传递完整的 Lesson 对象并访问模板中的文本和 ID。
我有以下错误
Reverse for 'classroom' with arguments '()' and keyword arguments
'{u'lesson_id': ''}' not found. 1 pattern(s) tried: ['classroom/(?P<lesson_id>\d+)/$']
models.py:
class DocumentLesson(Lesson):
document_number = models.ForeignKey('Lesson', related_name='doc_number')
text = models.TextField(blank=True, null=True)
def get_absolute_url(self):
return reverse('classroom', args=[self.id])
urls.py:
url(r'^classroom/(?P<lesson_id>\d+)/$', login_required(classroom), name='classroom'),
views.py:
def classroom(request, lesson_id=None):
print 'I am lesson id %s' % lesson_id
lesson = DocumentLesson.objects.select_related().get(id=lesson_id)
print ' I am lesson %s' % lesson
return render(request, 'web/document_lesson.html',{'lesson': mark_safe(lesson.text)})
和模板:
<a href="{% url 'classroom' lesson_id=lesson.id %}" ></a>
我找不到问题,在课堂作业中打印,但仍然抛出错误。 如果我在这样的模板中制作 link
<a href="{% url 'classroom' lesson_id=3 %}" ></a>
一切正常,没有错误。 请指教哪里有问题
您正在将 lesson.text
作为模板上下文中的课程变量传递。它没有 id 字段,这就是错误显示该值的空字符串的原因。
改为传递完整的 Lesson 对象并访问模板中的文本和 ID。