Как получить доступ к невозвращенному CharField из моделей в моих представлениях? - PullRequest
0 голосов
/ 24 декабря 2018

Прежде чем начать, я хочу уточнить, что я новичок в django, и поэтому я учусь ..

Это мои models.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})

Моя цель - создать главную страницу / заметку /, где я могу выбрать из всех моих заметок title_of_note.И после того, как я выбрал одну из заметок и щелкнул ссылку на одну (/ note / 1 /), она отображает мне title_of_note в качестве заголовка, а под заголовком я вижу свои данные details_note.До сих пор мне удавалось сделать главную страницу с заголовком заметки в виде ссылки, упорядоченной по дате создания.Все работает отлично, но я не могу понять, как добавить детали под заголовком на страницу / note / 1 /.Насколько я понимаю, я могу добавить details_note к возвращению в моем models.py.Но я не знаю, как на самом деле это сделать, я знаю, что я не могу просто сделать return self.title_of_note, self.details_note.

Как мне получить доступ к details_note в моем views.py?

I 'Я действительно вне идей и надеюсь на некоторую помощь.Это мой первый вопрос здесь, так что извините, если я сделал что-то не так.

Мой индексный шаблон

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

1 Ответ

0 голосов
/ 24 декабря 2018

Вам необходимо передать заметку в шаблон.

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, которая будет доступна для использования в шаблоне.

...