簡體   English   中英

反向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>

我找不到問題,可以在課堂工作中打印,但是仍然拋出錯誤。 如果我這樣在模板中建立鏈接

    <a href="{% url 'classroom' lesson_id=3 %}" ></a>

一切正常,沒有錯誤。 請告知這里的問題

您正在將lesson.text作為模板上下文上的lesson變量傳遞。 那沒有id字段,這就是為什么錯誤顯示該值的空字符串的原因。

而是傳遞完整的Lesson對象,並訪問模板中的文本和id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM