我知道这个问题已经被问过很多次了,但我还是不能解决它。
model.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。你能帮帮我吗?
3条答案
按热度按时间cig3rfwq1#
原始代码:
字符串
纠错码
型
9rnv2umw2#
首先让我们来看看视图代码。。
字符串
传递给模板的上下文字典包含一个键为'awb'的项和相应的QuerySet
Awb.objects.all()
。现在让我们来看看循环的模板。。
型
此循环模板标记的开头正在尝试生成一组反向的历史对象。为了实现这一点,我们需要一个AWB对象示例。相反,'awb'变量是作为上下文传递给模板的QuerySet。
如果此代码的目标是显示所有AWB对象及其相关的History对象,则以下模板代码应该有效。
型
owfi6suc3#
history_set.all只适用于一个Awb对象,而不是一个查询集。
这将工作:
字符串
或者:
循环遍历模板中的所有Awb对象,以访问每个对象的history_set。
型