#python #django #django-templates
#питон #django #django-шаблоны #python
Вопрос:
Я создаю свой первый проект Django, и я добавил модель в шаблон, но, когда я его запускаю, я ничего не вижу. но когда я просматриваю страницу, я вижу тег h2 для каждой записи в модели.
models.py
from django.db import models
from django.utils import timezone
from django.urls import reverse
class MyDate(models.Model):
english_date = models.DateField(auto_now=False)
hebrew_date = models.CharField(max_length=20)
def __str__(self):
return self.hebrew_date
views.py
from django.views.generic import (TemplateView,ListView,DetailView,CreateView,UpdateView,DeleteView)
from luach.models import MyDate
class HomePage(TemplateView):
template_name = 'new.html'
class MyDateListView(ListView):
model = MyDate
context_object_name = 'mydate'
шаблон
{% extends 'luach/base.html' %}
{% block content %}
<div class="jumbotron">
{% for mydate in mydate %}
<h2>Hi{{ MyDate.hebrew_date }}</h2>
{% empty %}
<h2>Sorry, no dates in this list.</h2>
{% endfor %}
</div>
{% endblock %}
Ответ №1:
Это потому, что вы не передаете контекст шаблону. напишите так:
return(request, 'noob/clueless-me.html' context)
в контексте:
context = {
'my_date' : my_date,
}
Ответ №2:
Попробуйте это в своем шаблоне:
{% for date in mydate %}
<h2>Hi{{ date.hebrew_date }}</h2>
{% endfor %}
вы не можете использовать MyDate
, вы должны использовать свой context_object_name
: mydate
Комментарии:
1. дайте мне знать, работает ли приведенный выше код. Ответ от djangotic не будет работать, потому что вы используете представления на основе классов вместо основанных на функциях.. Если это не работает, покажите нам свой
urls.py
пожалуйста
Ответ №3:
в вашем операторе for в шаблоне ошибка, попробуйте это:
{% extends 'luach/base.html' %}
{% block content %}
<div class="jumbotron">
{% for date in mydate %}
<h2>Hi{{ date.hebrew_date }}</h2>
{% empty %}
<h2>Sorry, no dates in this list.</h2>
{% endfor %}
</div>
{% endblock %}