不使用循环 Django 显示数据
display data without using a loop Django
如何放弃循环并仅显示下面所示的一种产品?
{data.title }}
{% for data in data %}
<h3 class="my-4 border-bottom pb-1">{{data.title }}</h3>
<div class="row">
{% endfor %}
我尝试使用:
<h3 class="my-4 border-bottom pb-1">{{data.title }}</h3>
<div class="row">
我有一个空白部分,但循环运行得很好。这是视图函数:
booking_detail(request, slug, id):
booking=Bookings.objects.all().order_by('-id')
return render(request,'booking_detail.html',{'data':booking})
model
class Bookings(models.Model):
title=models.CharField(max_length=200)
image=models.ImageField(upload_to="rooms_imgs")
slug=models.CharField(max_length=400)
detail=models.TextField()
features=models.TextField()
location=models.ForeignKey(Location, on_delete=models.CASCADE)
category=models.ForeignKey(Category, on_delete=models.CASCADE)
hostel=models.ForeignKey(Hostel, on_delete=models.CASCADE)
amenities=models.ForeignKey(Amenities, on_delete=models.CASCADE)
roomsizes=models.ForeignKey(RoomSizes,on_delete=models.CASCADE)
status=models.BooleanField(default=True)
is_featured=models.BooleanField(default=False)
is_availabe=models.BooleanField(default=True)
url
path('booking/<str:slug>/<int:id>',views.booking_detail,name='booking_detail'),
据我了解,此查看功能仅用于一次预订
booking_detail(request, slug, id):
booking=Bookings.objects.all().order_by('-id')
return render(request,'booking_detail.html',{'data':booking})
所以最好改为只检索一条记录,而不是列表
from django.shortcuts import get_object_or_404
def booking_detail(request, slug, id):
booking=get_object_or_404(Bookings, pk=id, slug=slug)
return render(request,'booking_detail.html',{'booking': booking})
然后在 HTML 中:
<h3 class="my-4 border-bottom pb-1">{{ booking.title }}</h3>
<div class="row">
文档
https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#get-object-or-404
如何放弃循环并仅显示下面所示的一种产品?
{data.title }}
{% for data in data %}
<h3 class="my-4 border-bottom pb-1">{{data.title }}</h3>
<div class="row">
{% endfor %}
我尝试使用:
<h3 class="my-4 border-bottom pb-1">{{data.title }}</h3>
<div class="row">
我有一个空白部分,但循环运行得很好。这是视图函数:
booking_detail(request, slug, id):
booking=Bookings.objects.all().order_by('-id')
return render(request,'booking_detail.html',{'data':booking})
model
class Bookings(models.Model):
title=models.CharField(max_length=200)
image=models.ImageField(upload_to="rooms_imgs")
slug=models.CharField(max_length=400)
detail=models.TextField()
features=models.TextField()
location=models.ForeignKey(Location, on_delete=models.CASCADE)
category=models.ForeignKey(Category, on_delete=models.CASCADE)
hostel=models.ForeignKey(Hostel, on_delete=models.CASCADE)
amenities=models.ForeignKey(Amenities, on_delete=models.CASCADE)
roomsizes=models.ForeignKey(RoomSizes,on_delete=models.CASCADE)
status=models.BooleanField(default=True)
is_featured=models.BooleanField(default=False)
is_availabe=models.BooleanField(default=True)
url
path('booking/<str:slug>/<int:id>',views.booking_detail,name='booking_detail'),
据我了解,此查看功能仅用于一次预订
booking_detail(request, slug, id):
booking=Bookings.objects.all().order_by('-id')
return render(request,'booking_detail.html',{'data':booking})
所以最好改为只检索一条记录,而不是列表
from django.shortcuts import get_object_or_404
def booking_detail(request, slug, id):
booking=get_object_or_404(Bookings, pk=id, slug=slug)
return render(request,'booking_detail.html',{'booking': booking})
然后在 HTML 中:
<h3 class="my-4 border-bottom pb-1">{{ booking.title }}</h3>
<div class="row">
文档 https://docs.djangoproject.com/en/4.0/topics/http/shortcuts/#get-object-or-404