django-在views.py中将两个表合并为一个,以便在模板中使用
有两种模式:django-在views.py中将两个表合并为一个,以便在模板中使用,django,django-views,django-templates,Django,Django Views,Django Templates,有两种模式: class Person(models.Model): id = models.IntegerField(primary_key=True) firstname = models.CharField(max_length=100) lastname = models.CharField(max_length=100) class Size(models.Model): title = models.CharField(max_length=100)
class Person(models.Model):
id = models.IntegerField(primary_key=True)
firstname = models.CharField(max_length=100)
lastname = models.CharField(max_length=100)
class Size(models.Model):
title = models.CharField(max_length=100)
以下是其中的数据:
表A:
表B:
+---+-----+
| 1 | X |
+---+-----+
| 2 | XL |
+---+-----+
| 3 | S |
+---+-----+
| 4 | XXL |
+---+-----+
我想在模板中得到的结果如下:
+---+--------+-------+-----+
| 1 | Alex | King | X |
+===+========+=======+=====+
| 2 | Jo | Ford | XL |
+---+--------+-------+-----+
| 3 | Bill | Arm | S |
+---+--------+-------+-----+
| 4 | Donald | Black | XXL |
+---+--------+-------+-----+
{% for field in combined %}
<td>{{ field.id }}</td>
<td>{{ field.firstname }}</td>
<td>{{ field.lastname }}</td>
<td>{{ field.title }}</td>
{% endfor %}
外键是id。
我知道annotate可能在这里工作,但我不知道如何使用它,而且互联网上的例子也不太清楚。
我想在for循环中使用它来获得如下结果:
+---+--------+-------+-----+
| 1 | Alex | King | X |
+===+========+=======+=====+
| 2 | Jo | Ford | XL |
+---+--------+-------+-----+
| 3 | Bill | Arm | S |
+---+--------+-------+-----+
| 4 | Donald | Black | XXL |
+---+--------+-------+-----+
{% for field in combined %}
<td>{{ field.id }}</td>
<td>{{ field.firstname }}</td>
<td>{{ field.lastname }}</td>
<td>{{ field.title }}</td>
{% endfor %}
{%用于组合%]中的字段
{{field.id}
{{field.firstname}
{{field.lastname}
{{field.title}}
{%endfor%}
views.py中应该包含哪些内容来组合这两个表并将结果传递给模板?“我知道注释可能在这里起作用”,这就是您的答案。让我给你一个提示,使用子查询来注释这些值。