Доступ к полям модели в HTML-шаблоне Django - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь напечатать поля из своего класса «Назначение», но, похоже, ничего из того, что я пробую, не работает.В HTML-шаблон я пытаюсь напечатать 'assignment_title'.Вот все мои файлы, чтобы помочь показать, где я нахожусь до

urls.py

url(r'^feedback/$', views.assignment, name='assignments')

models.py

class Assignment(models.Model):
assignment_title = models.CharField(max_length=256, default='')
lecturer = models.ForeignKey(User)

views.py

# Assignment view
def assignment(request):
args = {'assignment': Assignment}
return render(request, 'mainfocus/feedback.html', args)

html

<div class="container">
<h1>Feedback</h1>
<p>{{ obj.assignment_title }}</p>
</div>

Просто чтобы подтвердить, я также зарегистрировал класс в 'admin.py'.Любая помощь будет принята с благодарностью, я также перенес и заполнил таблицы, так что не должно возникнуть никаких проблем

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

ОТВЕТ!

views.py

# Assignment view
def assignment(request):
    assignments = Assignment.objects.all()
    args = {
        'assignments': assignments
    }
    return render(request, 'mainfocus/feedback.html', args)

models.py

class Assignment(models.Model):
    title = models.CharField(max_length=256, default='')
    lecturer = models.ForeignKey(User)

html

    {% for assignment in assignments %}
        <p>{{ assignment.title }}</p>
    {% empty %}
        <p>No assignments available</p>
    {% endfor %}
0 голосов
/ 17 февраля 2019

Переменная obj в views.py содержит все ваши Assignment из базы данных.Если вы хотите распечатать только одно Назначение, вам следует отфильтровать их:

# Assignment view
def assignment(request):
  obj = Assignment.objects.first() # get the first assignment for example
  return render(request, 'mainfocus/feedback.html',{'obj': obj})

Если вы хотите распечатать все из них, вам следует изменить свой шаблон, чтобы использовать для цикла :

<div class="container">
<h1>Feedback</h1>
{% for assignment in obj %}
<p>{{ assignment.assignment_title }}</p>
{% endfor %}
</div>
...