django - Django从两个与外键相关的表中获取数据
问题描述
我想从一个模型和相关图像中获取数据意味着我想获取车辆 ID 并与该车辆相关,它基于 F 键关系的相关图像。
型号1from django.db import models
class VehicleAd(models.Model):
vehiclename = models.CharField(max_length=50)
模型 2
from django.db import models
from .vehiclead import VehicleAd
class Vehicleadimages(models.Model):
vehiclead = models.ForeignKey(VehicleAd, on_delete=models.CASCADE,enter code hererelated_name="relatedvehiclead")
image = models.ImageField(upload_to="images/vechileadimage")
意见
def viewVehiclead(request):
vehiclead = VehicleAd.objects.all()
vehicleadimages = Vehicleadimages.objects.all()
print(vehiclead)
context = {
'vehiclead':vehiclead,
'vehicleadimages': vehicleadimages
}
return render(request,'vehiclead/view.html',context)
模板
{% block body %}
<div class="container bg-color-w shadow-lg custom-style-cont ">
{% include "menu/top-menu.html" %}
<div class="col-md-12 pd-arn2prc">
<div class="container">
<div class="row">
<div class="col-md-12 mx-auto">
<h1>h2</h1>
<table>
{% for v in vehiclead %}
<a href="#">{{ v.vehicleadimages.image }}</a>
{% endfor %}
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock body %}
解决方案
v.vehicleadimages
返回所有图像。它是一个查询集而不是一个对象,这意味着您无法调用.image
。
您可以使用 for 循环:
{% for v in vehiclead %}
{% for image in v.vehicleadimages.all %}
<a href="#">{{ image.image }}</a>
{% endfor %}
{% endfor %}
如果您需要第一张图片:
<a href="#">{{ v.vehicleadimages.first.image }}</a>
或者
<a href="#">{{ v.vehicleadimages.all.0.image }}</a>
还有with
标签:
{% with item.itemimage_set.all|first as image %}
<a href="#">{{ image.image }}</a>
{% endwith %}
推荐阅读
- c - 使用 Python 返回指向已经存在的内存地址的指针
- css - 如何调试悬停等伪元素?
- c# - 避免在不使用 Application.DoEvents() 的情况下阻塞表单
- javascript - 我可以使用 .sort() 根据数字属性对对象数组进行排序吗?
- c++ - "外部向量
开始解析(文件*);” - mysql - Sql 自连接以及不匹配的行
- javascript - 无法使用 Javascript 向 json 对象添加新的键和值
- java - 在java中使用命令行参数时没有得到正确的输出
- python-3.x - 使用 python 3.8 安装 scikit-learn 19.1 时出错
- python - Python:Tkinter:动态创建标签