首页 > 解决方案 > 比较 Django 中的两个表

问题描述

我在我的模板中显示来自 Table1 的数据,如下所示,我最近创建了另一个名为 Table2 的模型,其中包含我想在我的表格中显示的数据。

我需要检查codeTable1 中的 是否存在于 Table2 中,如果存在,则从 Table2 中获取var1andvar2并将其显示在我的模板中。

有谁知道如何以最好的方式做到这一点?

伪代码

If `code` In Table1 Exists In Table2
Get var1, var2 From Table2

我的模板

{% for data in info %}
    <tr>
        <td>{{ data.created }}</td>
        <td>{{ data.publisher }}</td>
        <td>{{ data.person }}</td>
        <td>{{ data.code }}</td>
    </tr>
{% endfor %}

我的观点

def home(request):

    info = Table1.objects.all()[:20]
    return render(request, 'app/home.html', {'info':info})

我的模型.py

class Table1(models.Model):
    created = models.DateTimeField(default=None)
    publisher = models.CharField(max_length=50, default=None)
    person = models.CharField(max_length=50, default=None)
    code = models.CharField(max_length=25, default=None)

    class Meta:
        db_table = 'Table1'
        unique_together = (("publisher", "person", "code"),)
    def __str__(self):
        return self.created

class Table2(models.Model):
    code = models.CharField(max_length=30, default=None, null=True)
    url = models.CharField(max_length=100, default=None, null=True)
    var1 = models.CharField(max_length=50, default=None, null=True)
    var2 = models.CharField(max_length=50, default=None, null=True)

    def __str__(self):
        return self.code

标签: djangodjango-modelsdjango-viewsdjango-templates

解决方案


views.py def 主页(请求):

    info = Table1.objects.all()[:20]
    table_2 = Table2.objects.all()[:20]
    return render(request, 'app/home.html', {'info':info,'table_2':table_2})

模板

{% for data in info %}
    <tr>
        <td>{{ data.created }}</td>
        <td>{{ data.publisher }}</td>
        <td>{{ data.person }}</td>
        <td>
          {% for table_2_data in table_2 %}
             {% if data.code == table_2_data.code %}
                 {{table_2_data.var1}} {{table_2_data.var2}}
             {% endif %}
          {% endfor %}
        </td>
    </tr>
{% endfor %}

推荐阅读