Как передать несколько объектов в качестве контекста в шаблоны в обобщенном представлении на основе классов в Django? - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно передать два разных объекта моему шаблону, я пытался передать, но он показывал только один.

Я пытался передать его как dict, но я застрял, затем я выбрал этот метод, который также приводит к получению только данных от первого объекта.

В теге шаблона я использовал

views.py

class ShowTable(ListView):
    model = TestUser

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)    
        context['vechile'] = Vechile.objects.all()
        return context

testuser_list.html

 {% for comment in object_list %}
        <tr>
            <td>{{ comment.name }}</td>
            <td>{{ comment.address }}</td>
            <td>{{ comment.phone }}</td>
            <td><a href="{% url 'myapp:edit-table' comment.id %}">edit</a></td>
            <td><a href="{% url 'myapp:delete-table' comment.id %}">Delete</a></td>
        </tr>
    {% endfor %}

 {% for comment in object_list %}
            <tr>
                <td>{{ comment.name }}</td>
                <td>{{ comment.bike }}</td>
                <td>{{ comment.car }}</td>
            </tr>
        {% endfor %}

Мне нужно отобразить данные обеих моделей (TestUser и Vechile), теперь я получаю данные из TestUserтолько модель.

1 Ответ

1 голос
/ 04 апреля 2019

Вы можете отладить это, добавив print(context) к представлению до return context или используя django-debug-toolbar.Вы увидите, что контекст содержит object_list и vechile.

Поэтому в шаблоне вы можете сделать:

{% for object in object_list %}
    {{ object }}
{% endfor %}

{% for v in vechile %}
    {{ v }}
{% endfor %}
...