所以我一直在寻找并试图解决这个问题,但我似乎找不到答案
我有两种不同型号的航班和目的地。目的地是父模型,一个航班只能有一个目的地,但目的地可以有多个航班(一对多关系)
我想在飞行模型的详细信息页面上访问此父模型。此详细信息页面通过url路由和航班的slug生成。以下是我为模型、视图和模板提供的信息
型号:
class Flight(models.Model):
title = models.CharField( null=True, max_length=60, blank=True)
slug = models.SlugField(max_length=100, null=True, blank=True)
flight_destination = models.ForeignKey(Destination, null=True, blank=True, on_delete=models.SET_NULL)
class Destination(models.Model):
title = models.CharField( null=True, max_length=60, blank=True)
featuredimage = models.ImageField(null=True, blank=True, upload_to ='media/')
slug = models.SlugField(max_length=100, null=True, blank=True)
每个类的主键都有一个id,我已经将所有航班连接到了正确的目的地
以下是我的观点
def flight_detail(request, slug):
return render(request,"flight/detail.html",context= {'flight': Flight.objects.get(slug=slug), 'destination': Destination.objects.filter(id= Flight.objects.get(slug=slug).flight_destination_id)})
这是一个模板,但它不会抛出错误,但它不会显示任何内容
<h3 class="pb-3">
{{ destination.title }}
</h3>
我觉得这应该是一个非常常见的问题,有很多直截了当的答案,但我似乎什么都找不到。任何帮助都将不胜感激
正是我想要的,谢谢!从我写这篇文章的时候起,我就可以在模板上使用forloop来运行我的原始版本,但是我觉得你的解决方案更干净,更适合实现这一点。再次感谢
您可以直接在
flight
对象中访问flight_destination
,您可以在render
方法之外获得flight
对象,使其更清晰,并可以访问destination
属性对象,如下所示:相关问题 更多 >
编程相关推荐