Djang的复滤波

2024-09-27 04:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个(简化的)Django模型,类似于以下内容:

模型.py

# python
class Hotel(models.Model):
     name = models.Charfield()

class RoomType(models.Model):
     hotel=models.ForeignKey(Hotel, related_name="roomtypes")
     price=models.IntegerField() # really  a currency field

class Room(models.Model):
     hotel = models.ForeignKey(Hotel)
     roomType = models.ForeignKey(RoomType, related_name="rooms")

class Reservation(models.Model):
     room = models.ForeignKey(Room)
     date = models.DateField()

所以我需要的模板层次结构是Hotel->RoomType->Room,其中每个模板都经过了过滤。在

视图.py

^{pr2}$

在某种程度上,这些查询都是有效的。我还没弄清楚如何在模板中使用它们。在

我正在尝试实现类似这样的功能(HTML简化):

模板.html

{% for hotel in hotels %}
<h1>{{hotel.name}}</h1>

   <ul>
   {% for roomtype in hotel.roomtypes %}
     <li>
       {{roomtype.name]}, {{roomtype.price}}
       {% for room in roomtype.rooms %}
            <!-- not really needed for this -->
       {% endfor %}
     </li>
   {% endfor %}
   </ul>
{% endfor %}

如何将对象传递到模板,以便可以用与上面类似的方式处理它们?在


Tags: namein模型模板formodelmodelshotel
1条回答
网友
1楼 · 发布于 2024-09-27 04:22:37

您的第一个片段可以简化为以下单个调用:

hotels = Hotel.objects.filter(roomtype__room=<whatever your criteria are>)

您不能在模板中执行此查询,但可以将hotels查询集传递给模板以在模板中呈现。在

相关问题 更多 >

    热门问题