gpt4 book ai didi

python - Django 模板中的外键关系

转载 作者:行者123 更新时间:2023-12-02 04:25:11 25 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但是我仍然无法解决。

模型.py

class Awb (models.Model):
awb_id = models.CharField(primary_key=True, max_length=50)
awb_shipment_date = models.DateTimeField()
awb_shipper = models.CharField(max_length=250)
awb_sender_contact = models.CharField(max_length= 50)

class History (models.Model):
history_id = models.AutoField(primary_key=True)
awb = models.ForeignKey(Awb)
history_city_hub = models.CharField(max_length=250)
history_name_receiver = models.CharField(max_length=250)

view.py

def awb_list_view(request):
data = {}
data['awb'] = Awb.objects.all()
data['history'] = History.objects.all()
return render(request, 'portal/awb-list.html', data)

模板

{% for s in awb.history_set.all %}
{{ s.awb_id }}
{{ s.history_id }}
{% endfor %}

当我用这段代码尝试时,模板中没有结果。我想在模板中显示 awb_id 和 History_id 。你能帮我吗?

最佳答案

首先让我们看一下 View 代码...

def awb_list_view(request):
data = {}
data['awb'] = Awb.objects.all()
data['history'] = History.objects.all()
return render(request, 'portal/awb-list.html', data)

传递给模板的上下文字典包含一个带有键“awb”的项目和相应的查询集Awb.objects.all()

现在让我们看一下 for 循环的模板...

{% for s in awb.history_set.all %}

此循环模板标记正试图生成一组相反的 History 对象。为了实现这一点,我们需要一个 AWB 对象实例。相反,“awb”变量是一个查询集,它作为上下文传递给模板。

如果此代码的目标是显示所有 AWB 对象及其相关的 History 对象,则以下模板代码应该有效。

{% for awb_obj in awb %}
{% for history_obj in awb_obj.history_set.all %}
{{ awb_obj.id }}
{{ history_obj.id }}
{% endfor %}
{% endfor %}

关于python - Django 模板中的外键关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com