Проблема в том, что в вашем шаблоне вы сравниваете имя директора с первичным ключом, на который есть ссылка в Connection
с помощью Director_connect ForeignKey
. Самым простым решением было бы изменить выражение if:
{% extends "index.html" %}
{% block content %}
<h1>{{ director.director_name }}</h1>
<p>{{ director.firstname }}</p>
{% for con in cons %}
{% if object == con.director_connect %} // Change it so it compares the primary key
<li>{{con.id}}, {{con.director_connect}}, {{con.worker_connect}}</li>
{% endif %}
{% endfor %}
{% endblock %}
Другой способ добиться этого - отфильтровать рабочих по директору в представлении с помощью filter:
class DirectorDetailView(generic.DetailView):
model=Director
template_name = 'company/director_detail.html'
def get_context_data(self, **qwargs):
a = super(DirectorDetailView, self).get_context_data(**qwargs)
director = self.get_object()
a['cons'] = Connection.objets.filter(direct_connect=director).all()
return a
This лучше, потому что он будет фильтровать рабочих в базе данных, используя SQL, что, вероятно, быстрее, чем механизм шаблонов.
Другим решением было бы использовать ManyToManyField и позволить django ORM позаботьтесь об отношениях за вас, но это потребует рефакторинга кода и, возможно, некоторых миграций базы данных.