【发布时间】:2018-09-03 19:56:58
【问题描述】:
我正在尝试在一个页面上显示一个显示 Booking 模型中所有预订的页面。
views.py
def bookings(request):
booking_list = get_object_or_404(Booking.objects.filter().order_by("-day"))
return render(request, 'roombooker/base.html', {'booking_list': booking_list})
models.py
class Booking(models.Model):
day = models.DateField(u'Booking Day',help_text=u'Day of Booking')
start_time = models.TimeField(u'Start Time', help_text=u'Start Time')
end_time = models.TimeField(u'End Time', help_text=u'End Time')
user = models.ForeignKey('User', on_delete=models.SET_NULL,null=True)
room = models.ForeignKey('Room', on_delete=models.SET_NULL,null=True)
urls.py
urlpatterns =[
url(r'^bookings/',views.bookings, name='bookings'),
]
我输入的数据库中目前有 10 个虚拟条目。
当我尝试转到预订页面时,我得到:
MultipleObjectsReturned 在 /bookings/ get() 返回了多个 Booking -- 它返回了 10 个!
这就是我想要的,我想要 10 个 Booking 对象。想法是将其传递给 html 进行渲染。
我该如何解决这个错误?
【问题讨论】:
-
使用
get_list_or_404而不是get_object_or_404,后者将调用.get()并触发错误。
标签: python django django-views