Django 如何在视图中获取模型的死者
我有两个模型对象:GEO、SHIP和CREW。船员、船舶和geo之间分别存在一对多关系。一个GEO中可以有0-n艘船舶。对于每艘船,可能有0-n 如果我拉出地理位置列表:Django 如何在视图中获取模型的死者,django,django-models,Django,Django Models,我有两个模型对象:GEO、SHIP和CREW。船员、船舶和geo之间分别存在一对多关系。一个GEO中可以有0-n艘船舶。对于每艘船,可能有0-n 如果我拉出地理位置列表: GEO = models.Geo.objects.all() 我如何引用模板中的所有GEO、循环船舶,以及每艘船舶、船员 这是我的模型: class Geo (Unit): coverage = models.TextField(null=True) def __str__(self): r
GEO = models.Geo.objects.all()
我如何引用模板中的所有GEO、循环船舶,以及每艘船舶、船员
这是我的模型:
class Geo (Unit):
coverage = models.TextField(null=True)
def __str__(self):
return self.Name
class Ship (Unit):
HullNumber = models.TextField(null=True)
Origin = models.CharField(max_length=3, choices=ALLEGIENCE_CHOICES, default='FED')
Geo = models.ForeignKey(Geo)
def __str__(self):
return self.Name
class Crew (models.Model):
CrewType = (
('O', 'Officer'),
('E', 'Enlisted'),
('C', 'Civilian'),
)
Geo = models.ForeignKey(Geo)
Ship = models.ForeignKey(Ship)
Type = models.CharField(max_length=1, choices=CrewType)
Position = models.CharField(max_length=20)
def __str__(self):
return self.Position
感谢
views.py中的,您只需传递Geo
列表即可:
def crew_list(request):
return render(request, 'crew_list.html', {'geo_list': Geo.objects.all()})
{% for geo in geo_list %}
<h1>{{ geo }}</h1>
{% for ship in geo.ship_set.all %}
<h2>{{ ship }}</h2>
<ul>
{% for crew in ship.crew_set.all %}
<li>{{ crew }} - {{ crew.get_Type_display }}</li>
{% endfor %}
</ul>
{% endfor %}
{% endfor %}
A然后在模板中迭代每个Geo
的相关船舶/船员:
def crew_list(request):
return render(request, 'crew_list.html', {'geo_list': Geo.objects.all()})
{% for geo in geo_list %}
<h1>{{ geo }}</h1>
{% for ship in geo.ship_set.all %}
<h2>{{ ship }}</h2>
<ul>
{% for crew in ship.crew_set.all %}
<li>{{ crew }} - {{ crew.get_Type_display }}</li>
{% endfor %}
</ul>
{% endfor %}
{% endfor %}
{地理位置列表%中的地理位置的%
{{geo}
{geo.ship_set.all%}
{{ship}}
{ship.crew\U set.all%}
- {{crew}}-{crew.get_Type_display}
{%endfor%}
{%endfor%}
{%endfor%}
另一个选项是将由Geo/Ship排序的船员列表传递给模板,并使用模板标签显示船员的“更改”Geo和Ship。尝试文档,然后尝试一些代码对于初学者,显示您的模型定义。