如何在Django HTML页面中显示Foreignkey数据? [英] How to display Foreignkey Data in Django html page?
问题描述
我想从相关的外键模型获取数据,但是我无法从相关的模型获取数据,请让我知道我该怎么做。我想显示 Model2
表中的 name
值。
I want to get data from related foreign-key models, but I am unable to get data from the related model, Please let me know how I can do it. I want to display name
value from Model2
table..
这是我的 models.py
文件...
class Customer(models.Model):
cus_name=models.Charfield(blank=True)
class Model1(models.Model):
namefield=models.Charfield(blank=True)
class Model2(models.Model):
name=models.CharField(default=None)
model1=models.Foreignkey(Model1, related_name='model_one', on_delete=models.CASCADE)
customer=models.Foreignkey(Customer, related_name='customer_data', on_delete=models.CASCADE)
这是我的 views.py
文件...
def display_data(request, id):
test_display=Model1.objects.filter(pk=id).first()
return render(request, 'page.html', {'test_display':test_display})
这是我的 test.html
文件,我在其中显示名称$ c从
Model2
表中的$ c>
here is my test.html
file where i am displaying name
from Model2
table
<p>{{test_display.model_one.name}}</p>
推荐答案
首先,而不是 filter (...)。first()
,使用 get()
或 get_object_or_404()
方法:
First, instead of filter(...).first()
, use get()
or get_object_or_404()
method:
from django.shortcuts import get_object_or_404
def display_data(request, id):
test_display=get_object_or_404(Model1.objects.prefetch_related('model_one'), pk)
# or Model1.objects.prefetch_related('model_one').get(pk=pk)
return render(request, 'page.html', {'test_display':test_display})
在模板中,使用反向关系来查询Model1实例:
And in the template, use reverse relation to query Model1 instances:
{% for object in test_display.model_one.all %}
{{ object.name }}
{% endfor %}
关系由于ForeignKey,Model1和Model2之间的关系是多对一的,您将从反向查询Model2实例中获得多个Model1对象。如果您只希望为Model2存储一个对象,请考虑使用 OneToOne
关系。
As the relation between Model1 and Model2 is many to one due to ForeignKey, you will get multiple Model1 objects from reverse querying Model2 instance. If you want only one object to stored for Model2, then consider using OneToOne
relation.
这篇关于如何在Django HTML页面中显示Foreignkey数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!