对于使用django admin的酒店预订系统,我想过滤给定日期范围内的可用房间,模型如下
class Room(models.Model):
id = models.AutoField(primary_key=True)
hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE)
class Booking(models.Model):
id = models.AutoField(primary_key=True)
start_date = models.DateField(verbose_name=_("Start date"))
end_date = models.DateField(verbose_name=_("End date"))
room = models.ForeignKey(Room, on_delete=models.CASCADE)
字符串
我如何在管理中过滤房间,以便我可以选择一个日期范围,并只返回在选择范围内没有预订的房间?
非常感谢
1条答案
按热度按时间zed5wv101#
为了传递范围数据,我在admin中创建了一个表单。为此,我覆盖了
admin/change_list.html template
。change_list.html
模板添加到目录:templates/admin
。我尝试只使用Django进行过滤,例如:
字符串
但结果并不完全正确。
我认为需要从每个预订记录创建一个日期范围,并将其与从表单日期创建的范围进行比较。Pandas非常适合此目的。使用以下方法:date_range,isin,loc。
admin.py
型
forms.py
型
模板
型