在我开始之前,我想澄清一下我是django的初学者,所以我正在学习。
这是我的模特。py
class MyNote(models.Model):
title_of_note = models.CharField(max_length=200)
date_created = models.DateTimeField('Created')
details_note = models.TextField(max_length=2500, default="")
def __str__(self):
return self.title_of_note
这是我的views.py
def index(request):
notes_list = MyNote.objects.order_by('date_created')
context = {'notes_list' : notes_list}
return render(request, 'note/index.html', context)
def detail(request, note_id):
note = get_object_or_404(MyNote, pk=note_id)
return render(request, 'note/detail.html', {'request' : note})
我的目标是要有一个主页/ note /,title_of_note
可以在我的所有笔记中进行选择。在我选择了一个便笺并单击指向一个便笺的链接(/ note / 1 /)之后,它向我显示title_of_note
作为标题,并在标题下方显示我的详细信息details_note
。
到现在为止,我设法以注释的标题为链接(按创建日期排序)来制作主页。一切正常,但我无法弄清楚如何将标题下的详细信息添加到/ note / 1 /页面。到目前为止,我了解到,我可以在我的models.py中将details_note
添加到返回中。但是我不知道该怎么做,我知道我不能只做return self.title_of_note, self.details_note
。
如何在我的views.py中访问details_note
?
我真的没有想法,希望能有所帮助。这是我的第一个问题,对不起,如果做错了事。
我的索引模板
<body bgcolor="black">
<p><font size="5", color="white">You are at the main page of my notes.</p>
{% if notes_list %}
<ul>
{% for note in notes_list %}
<li><font size="3", color="white"><a href="{% url 'note:detail' note.id %}">{{ note.title_of_note }}</a></font></li>
{% endfor %}
</ul>
{% else %}
<p><font size="5", color="white">There was a problem. Probably no notes</font></p>
{% endif %}
</body>
这是我的详细信息模板
<body bgcolor="black">
<h1><font size="5", color="white">{{ note.title_of_note }}</font></h1>
<p><font size="3", color="pink">{{ note.details_note }}</font></p>
</body>
答案 0 :(得分:1)
您需要将笔记传递给模板。
def detail(request, note_id):
note = get_object_or_404(MyNote, pk=note_id)
context = {'note': note}
return render(request, 'note/detail.html', context)
在模板中,您可以从注释中获取信息,例如:{{ note.title_of_note }}
或{{ note.details_note }}
在您的代码中,您正在用request
实例覆盖note
上下文变量,请不要这样做,因为Django将添加一个request
上下文变量以供在{模板。