Как правило, не используйте zip
и определите каждый в своем контексте:
def home(request):
context = {
'mylist': {
'comp': Company_Masters.objects.all(),
'loc': Location_Masters.objects.all(),
'dept': dept.objects.all(),
'emp': emplo.objects.all()
}
}
return render(request,'compliance/home.html',context)
вернет словарь mylist
в ваш шаблон, из которого вы можете получить доступ ко всем остальным словарям, используя точечную запись mylist.comp
в качестве примера. это не идеальное решение, но если мы не знаем, чего вы пытаетесь достичь, мы можем попытаться вас туда доставить.
В вашем шаблоне вы должны изменить на:
{% extends "compliance/base.html" %}
{% block content %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">COMPLIANCE 1</a>
<small class="text-muted">DATE EXPIRY</small>
</div>
{% for comp in mylist.comp %}
<p class="article-content"> COMPANY ID: {{ comp.comp_id }}</p>
<p class="article-content">COMPANY NAME: {{ comp.comp_name }}</p>
{% endfor %}
{% for loc in mylist.loc %}
<p class="article-content">LOCATION ID: {{ loc.loc_id}}</p>
<p class="article-content">LOCATION NAME: {{ loc.loc_name}}</p>
{% endfor %}
{% for dept in mylist.dept %}
<p class="article-content">DEPT ID: {{ dept.dept_id}}</p>
<p class="article-content">DEPT NAME: {{ dept.dept_name}}</p>
{% endfor %}
{% for emp in mylist.emp %}
<p class="article-content">EMPLOYEE ID: {{ emp.emp_id}}</p>
<p class="article-content">EMPLOYEE NAME: {{ emp.emp_name}}</p>
<!-- <p class="article-content">EMPLOYEE EMAIL: {{ emp.emp_email}}</p> -->
{% endfor %}
</div>
</article>
{% endblock content %}
Но я бы рискнул предположить и сказать, что это вряд ли даст вам желаемый конечный результат - хотя вы явно не сказали этого, я полагаю, ваша цель была в действительности объединить эти таблицы в единственный результат. Это более широкий ответ и потребует знания ваших моделей
То есть, если ваша цель - получить доступ ко всем emplo
записям, вы должны использовать ForeignKey
- dept
, Location_Masters
и Company_Masters
, чтобы получить правильно связанные записи. что-то вроде emplo.objects.select_related('dept', 'Location_Masters', 'Company_Masters').all()
, но это будет означать, что все иностранные ключи в emplo (опять-таки гадание на ваших моделях)
Примечание: вам следует подумать о чтении правильных имен в python / django - все классы вашей модели должны быть написаны заглавными буквами и не использовать подчеркивания в именах; также рекомендуется явно указывать имена классов и переменных, чтобы что следующий человек, который читает ваш код, поймет, чего вы пытались достичь