我有两个模型,当我请求.POST.get('room_id')或('id')我收到错误房间匹配查询不存在 . 怎么解决这个问题?帮我
class Room(models.Model):
status = models.BooleanField('Status',default=True)
name = models.CharField('Name', max_length=100, unique=True)
class Book(models.Model):
date = models.DateTimeField('Created',auto_now_add=True)
from_date = models.DateField('Check-in')
to_date = models.DateField('Check-out')
room = models.ForeignKey(Room, related_name='booking')
我需要详细房间请求获取ID,预订日期范围(from_date,to_date)
def room_detail(request,pk):
room = get_object_or_404(Room,pk=pk)
if request.method == 'POST':
form = BookForm(request.POST,room=room)
if form.is_valid():
s = form.save(commit=True)
s.save()
return redirect(request.path)
else:
form = BookForm()
#roomid = Room.objects.values('id')
type = request.POST.get('id') # or get('room_id')
rooms = Room.objects.get(id=type)
start_dates = rooms.booking.values_list('from_date',flat=True)
end_dates = rooms.booking.values_list('to_date',flat=True)
dates = [start + timedelta(days=i) for start, end in zip(start_dates,end_dates) for i in range((end-start).days+1)]
c = {}
c['form'] = form
return render_to_response('rooms_detail.html',c)
请帮助我,提前谢谢
2 回答
移动你的线
在post方法中 .
您正在查看request.POST,即使request.method不等于'POST' . 这不起作用,因为当请求不是HTTP帖子时,请求的POST成员为空 .