Как вернуть имена дочерних объектов вместе с данными о родителях в django
У меня есть две модели Destination и Cruise
#Models
class Destination(models.Model):
name = models.CharField(unique= True, null= False, blank=False, max_length= 50)
description = models.TextField(max_length= 2000, null= False, blank=False)
slug = models.SlugField()
def __str__(self) -> str:
return self.name
class Cruise(models.Model):
name = models.CharField(unique= True, null= False, blank=False, max_length= 50)
description = models.TextField(max_length= 2000, null= False, blank=False)
destinations = models.ForeignKey("Destination", null=True, blank=True, on_delete=models.SET_NULL)
Я пытаюсь показать подробную информацию о пункте назначения вместе со всеми круизами по этому направлению.
#Views
class DestinationDetailView(DetailView):
template_name = 'destination_detail.html'
queryset = models.Destination.objects.all()
context_object_name = "destination"
HTML
#html
{% block content %}
Destination Name = {{destination.name}}
Description = {{destination.description}}
Cruise = {{destination.cruises}}
{% blockend content %}
Пожалуйста, подскажите, как распечатать все круизы по каждому направлению.
Я предполагаю, что вы хотите отобразить содержимое некоторых полей круиза в html.
Вы можете использовать тег шаблона for
, как описано здесь, например:
#html
{% block content %}
Destination Name = {{destination.name}}
Description = {{destination.description}}
Cruise =
{% for cruise in destination.cruise_set.all %}
{{ cruise.name }} </br>
{% endfor %}
{% blockend content %}
Это решило мою проблему, добавив цикл for в HTML.
#html
{% block content %}
Destination Name = {{destination.name}}
Description = {{destination.description}}
Cruise =
{% for cruise in destination.cruises.all %}
{{ cruise.name }} </br>
{% endfor %}
{% blockend content %}