Сравнение объектов языка шаблонов Django

Я довольно новичок в Django. У меня есть база данных с Events. Я хочу отобразить имя объекта Organisation, где org_id является внешним ключом в модели событий. Мой подход заключался в том, чтобы загрузить все объекты, а затем выполнить итерацию по ним, но я не получаю никакого результата на сайте. Мне кажется, что это связано с языком шаблонов

models.py

class Organisation(models.Model):                      
   org_id=AutoSlugField(unique=True)
   name = models.CharField(max_length=200)
   email=models.EmailField(max_length = 250)

class Event(models.Model):
   event_id = AutoSlugField(unique=True)
   name = models.CharField(max_length=100)
   date = models.DateField()   
   event_category = models.CharField(max_length=50)
   duration= models.IntegerField()
   org_id = models.ForeignKey(Organisation,on_delete=models.CASCADE)  
   maxparticipants= models.IntegerField()
   teacher_id=models.ForeignKey(User,on_delete=models.CASCADE)

релевантный фрагмент из файла event_details.html

<h3>Hosting Body</h3>
{% for org in orgs%}
    {%if org.org_id == event.org_id %}

        <p>{{org.name}}</p>

    {%endif%}
{%endfor%}
<h3>Date</h3>
<p>{{event.date}}</p>

views.py

def event_details(request,pk):
   event=Event.objects.get(event_id=pk)
   orgs=Organisation.objects.all()
   context={'event':event,'orgs':orgs}
   return render(request,'event_details.html',context)

Вы можете оказать соответствующую организацию с помощью:

<h3>Hosting Body</h3>
<p>{{ event.org_id.name }}</p>

<h3>Date</h3>
<p>{{ event.date }}</p>

Вы можете повысить эффективность, извлекая данные Event и Organisation в одном запросе с помощью:

from django.shortcuts import get_object_or_404

def event_details(request, pk):
   event = get_object_or_404(Event.objects.select_related('org_id'), event_id=pk)
   context = {'event':event}

Примечание: Часто лучше использовать get_object_or_404(…) [Django-doc], чем использовать .get(…) [Django-doc] напрямую. В случае, если объект не существует, например, потому что пользователь сам изменил URL, get_object_or_404(…) приведет к возврату ответа HTTP 404 Not Found, в то время как использование .get(…) приведет к ответу HTTP 500 Server Error.


Примечание: Обычно не добавляют суффикс _id к полю ForeignKey, так как Django автоматически добавит поле-"близнец" с суффиксом _id. Поэтому он должен быть org, вместо org_id.

.

в вашем шаблоне измените его на:

<h3>Hosting Body</h3>
{% for org in orgs%}
    {%if org.org_id == event.org_id.org_id %}

        <p>{{org.name}}</p>

    {%endif%}
{%endfor%}
<h3>Date</h3>
<p>{{event.date}}</p>
Вернуться на верх