django - 如何在django中获取每个对象(干预)多对多关系的对象(设备)列表
问题描述
型号设备:
class Equipement(models.Model):
nom_equipement=models.CharField(max_length=60)
qte_stock=models.IntegerField()
panne=models.ManyToManyField(Panne)
模型干预:
class Intervention(models.Model):
Titre_intervention = models.TextField(max_length=255)
date_intervention = models.DateField(auto_now_add=True)
type_panne = models.ForeignKey(Panne,on_delete=models.CASCADE)
etat = models.CharField(max_length=30)
description = models.TextField(max_length=255)
image = models.ImageField(blank=True,null=True,upload_to='medial/%Y/%m/%D')
equipements = models.ManyToManyField(Equipement)
clients = models.ForeignKey(Client,on_delete=models.CASCADE,default=True)
模型干预与多对多关系:
所以当我添加一个新的“干预”时,它会添加到关联表中
我需要列出每次干预的所有设备这是我的观点:
def mes_intervention(request):
if 'id_client' in request.session:
get_idClient=request.session['id_client']
Interv_client = Intervention.objects.all().filter(clients=get_idClient)
context = {
'intervention':Interv_client
}
return render(request, 'clients/mes-intervention.html',context)
这就是我在模板 html 中列出所有干预的地方
解决方案
作为旁注,您的复数和单数有点混淆。外键指向一个模型:
client = models.ForeignKey(Client,on_delete=models.CASCADE,default=True) # singular
一个查询集返回多个对象:
context = { 'interventions': Interv_client}
虽然不能在模板中调用带参数的函数,但可以调用不带参数的对象方法。所以,你实际上可以这样做:
{% for item in interventions %}
...
{% for equipment in item.equipements.all %}
{{ equipment.qte_stock }}
{% endfor %}
{% endfor %}
推荐阅读
- vue.js - 无法读取未定义的属性“长度” - 为什么 DOM 在“创建”之前尝试加载?
- python - 尝试点击亚马逊畅销书排名(Python)
- python - Seaborn displot - 在一个图中绘制多个图
- python - 如何将 OTP 发送到 Django 中的电话号码?
- python-3.x - 向数据框熊猫添加行
- php - 如何从 PHP 上的 $_GET 值向数据库表中插入数据
- html - 在带有 Python3 的树莓中为 arduino 使用 HTML
- c# - While/for 循环直到出现特定条件
- c# - 从 NET Core Web 应用程序调用 Microsoft Graph SDK 时出现 MsalUiRequiredException
- flutter - 有没有办法在 Flutter 中重建 AnimatedList?