Это первый раз, когда я буду реализовывать представление на основе классов в реальном проекте, но данные не отображаются в шаблоне.

        <div class="container">
          <h4 class="heading-decorated text-center mt-5">Our Volunteers</h4>
          {% for volunteer in volunteers %}
          <div class="row row-30 text-center mb-5">
            <div class="col-sm-6 col-md-3">
              <figure class="box-icon-image"><a href="#"><img class="rounded" src="{{volunteer.volunteer_image.url}}" alt="" width="126" height="102"/></a></figure>
                <p class="lead">{{volunteers.volunteer_name}}</p>
            </div>
          </div>
          {% endfor %}
        </div>

Views.py

class VolunteerListView(ListView):
    model = Volunteers
    context_object_name = 'volunteer'
    template_name = 'add_my_language/home.html'

Models.py

class Volunteers(models.Model):
    volunteer_image = models.ImageField(upload_to='media/volunteers')
    volunteer_name = models.CharField(max_length=255, blank=False)

def __str__(self):
    return self.volunteer_name

Я что-нибудь пропустил?

0
Vicente Garcia-Reyes 16 Авг 2019 в 09:35

2 ответа

Лучший ответ

Я выяснил, что мои модели для домашней страницы были отдельными, поэтому данные не показывались. Как только я объединил все модели для домашней страницы, мой ответ выше сработал.

0
highcenbug 19 Авг 2019 в 03:48

Пока это представление выполняется, self.object_list будет содержать список объектов (обычно, но не обязательно набор запросов), с которыми работает представление.

ListView:

class VolunteerListView(ListView):

    model = Volunteers

    def get_context_data(self, **kwargs):
       context = super().get_context_data(**kwargs)
       # extra context goes here
       return context

Шаблон

<h1>Volunteers</h1>

   {% for volunteer in object_list %}
     <p class="lead">{{volunteers.volunteer_name}}</p>

   {% endfor %}

Дополнительная литература

Общие представления дисплея Официальные документы Django

-1
Muhammad Faizan Fareed 16 Авг 2019 в 07:02