Как получить значение поля родительской таблицы с помощью объекта queryset в шаблоне django
У меня есть следующие модели -
Родительская таблица -
class RoomCategory(models.Model):
trust = models.ForeignKey(Trust, on_delete=models.CASCADE, blank=True, null=True)
*category = models.CharField(max_length=50,db_index=True)*
rate = models.FloatField()
description = models.CharField(max_length=500, blank=True, null=True)
num_guests = models.IntegerField(blank=True, null=True)
num_bedrooms = models.IntegerField(blank=True, null=True)
num_beds = models.IntegerField(blank=True, null=True)
num_toilets = models.IntegerField(blank=True, null=True)
дочерняя таблица1, имеющая вышеуказанные картинки категорий комнат, как показано ниже
class RoomCategoryAttribute(models.Model):
trust = models.ForeignKey(Trust, on_delete=models.CASCADE, blank=True, null=True)
category = models.ForeignKey(RoomCategory, on_delete=models.CASCADE, blank=True, null=True)
*image=models.ImageField(upload_to="room_cat_imgs/",null=True)*
дочерняя таблица2, имеющая данные бронирования
class Booking(models.Model):
trust = models.ForeignKey(Trust, on_delete=models.CASCADE, db_index=True,blank=True, null=True)
*category = models.ForeignKey(RoomCategory, on_delete=models.CASCADE, blank=True, null=True)*
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
room = models.ForeignKey(Room, on_delete=models.CASCADE)
check_in = models.DateTimeField(db_index=True)
check_out = models.DateTimeField(db_index=True)
phone_no = models.IntegerField(blank=True, null=True, db_index=True)
num_days = models.IntegerField(blank=True, null=True)
total_cost = models.IntegerField(blank=True, null=True)
when_booked = models.DateTimeField(blank=True, null=True, db_index=True)
У меня есть следующий набор запросов в моем файле views.py -
booking = Booking.objects.all()
В моем шаблоне я итерирую вышеуказанный набор запросов бронирования, чтобы показать бронирования в карточках, как показано ниже
{% для booking в booking_list %}
Теперь вопрос - в карточках - как мне показать первое изображение из дочерней таблицы1, т.е. RoomCategoryAttribute, которая имеет несколько строк с несколькими изображениями для каждой RoomCategory - как я думаю, есть какой-то способ использовать ***_set.first.image, и я пробовал несколько способов, но ничего не работает -
<div class="card-img-top overflow-hidden"><a href="user-booking-detail.html"><img class="img-fluid" src="/media/{{booking.category.category.roomcategoryattribute_set.first.image}}" alt="Modern, Well-Appointed Room"/></a></div>
Спасибо, Джимми, Как вы предложили, я отладил с помощью команды print cmd, которую вы дали, и обнаружил, что эта колонка не должна быть пустой, а также в шаблоне тег такой же, за исключением части url ....