【发布时间】:2019-10-11 16:53:46
【问题描述】:
我正在尝试建立一个预订系统(公寓)。这个想法是,用户可以选择开始日期和结束日期,然后在没有预订的情况下预订公寓。
我有一个带有“start_date”和“end_date”的 Reservation 模型,用于确定公寓预订的日期。
使用 JQuery Ui Date Picker(一个小日历)来选择日期。 “不可用”日期显示为灰色。 我就是这样做的:
<script type="text/javascript">
var unavailableDates = ['{{ reservation.all.0.start_date|date:"d-m-Y" }}', '{{ reservation.all.0.end_date|date:"d-m-Y" }}'];
console.log(unavailableDates);
function unavailable(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
$(function () {
$("#datepicker").datepicker({
dateFormat: 'MM-dd-yy',
beforeShowDay: unavailable
});
});
</script>
我正在使用...
{{ reservation.all.0.start_date|date:"d-m-Y" }}
...使日历中的日期变灰。
我的预订模型如下所示:
class Reservation(models.Model):
apartment = models.ForeignKey(Apartment, related_name='reservations',
on_delete=models.CASCADE, blank=True, null=True)
start_date = models.DateField(blank=True, null=True, unique=True)
end_date = models.DateField(blank=True, null=True, unique=True)
name = models.CharField(default="", max_length=200, unique=True)
def __str__(self):
return self.name
在我看来,我有:
def apartment_view(request, apartment_id):
reservation = Reservation.objects.filter(apartment__pk=apartment_id)
apartment = get_object_or_404(Apartment, pk=apartment_id)
context = {'apartment': apartment, }
form = ReservationForm()
if request.method == 'GET':
form = ReservationForm()
elif request.method == 'POST':
form = ReservationForm(request.POST)
if form.is_valid():
reservation = form.save(commit=False)
reservation.apartment = apartment
reservation.save()
form.save()
return HttpResponseRedirect('/booking/')
args = {}
args['form'] = form
args['apartment'] = context
args['reservation'] = reservation
return render(request, 'booking/apartment.html', args)
因为我需要将我的预订过滤到正确的公寓。
我的问题是,如何查询与公寓相关的所有日期,包括开始日期和结束日期?
所以我需要公寓 1 的所有日期,然后是公寓 2 的所有日期......等等。
我不知道该如何继续,如果帖子令人困惑,我深表歉意。
谢谢!!!
【问题讨论】:
-
请添加您的完整视图代码。我不完全确定你想要完成什么?你说的是文章?
-
嗨,Alex,感谢您的回答。这篇文章是一个“错字”。我想要完成的是获得一个公寓的所有预订。因此,如果我去 /apartment1/ 那里我有特定于公寓 1 的预订,当我去 /apartment2/ 时我有特定于公寓 2 的预订等。我可以通过执行 {{ reservation.all.0 逐个访问它们.start_date|date:"dmY" }},但我需要一种方法来获取它们,并可能将它们保存到数组中。