我想检查用户选择的日期是否尚未预订。我写了下面的代码,输入一个日期后,已经在数据库预订,我被告知,该日期是免费的,这是不应该的。你知道吗
模型
属性模型
class Kip(models.Model):
user=models.ForeignKey(User)
name=models.CharField(max_length=250)
address=models.CharField(max_length=200)
业主日历模型
class OwnerCalendar(models.Model):
user=models.ForeignKey(User)
kip=models.ForeignKey(Kip)
booked_dates=models.CharField(max_length=1000)
pub_date=models.DateTimeField()
预订物业模型
class Bookable(models.Model):
user=models.ForeignKey(User)
event_date=models.DateField()
session=models.ForeignKey(Session)
full_name=models.CharField(max_length=100)
phone_no=models.CharField(max_length=40)
kip=models.ForeignKey(Kip)
视图
def booking_of_space(request, kipid):
if request.method=="POST":
form=BookableForm(request.POST)
if form.is_valid():
data=form.cleaned_data
newbooking=Bookable(
user=request.user,
pub_date=datetime.datetime.now(),
event_date=data['event_date'],
phone_no=data['phone_no'],
kip=Kip.objects.get(pk=kipid),
session=Session.objects.get(session_key=request.session.session_key))
newbooking.save()
renter=newbooking.event_date
owners=OwnerCalendar.objects.filter(kip__id=kipid).values_list('booked_dates')
if renter in owners:
return HttpResponse('Booked already')
else:
return HttpResponse('Go ahead and book')
else:
return HttpResponse('Kindly input the right data')
else:
return render_to_response('bookablespace.html',{'BookableForm':BookableForm},context_instance=RequestContext(request))
我错过了什么?你知道吗
您将日期对象
newbooking.event_date
与字符串列表booked_dates
进行比较,这永远不会是真的。为什么不做一个查询来检查在某个特定时间是否已经为属性创建了Bookable
条目呢?比如:相关问题 更多 >
编程相关推荐