Python 如何询问table1.id==table2.id是否为?

Python 如何询问table1.id==table2.id是否为?,python,django,django-templates,Python,Django,Django Templates,我想确定table1.id_sitio和table2.id_sitio是否相同,以便在模板中执行A。如果不是的话,B 我想如果我的句子是错的。。。 这是我第一次尝试Django,所以我可能错过了什么 这是我尝试过的和我的代码: Models.py class Comprobante(models.Model): id_sitio = models.ForeignKey('Sitio', models.DO_NOTHING, db_column='id_sitio', blank=

我想确定table1.id_sitio和table2.id_sitio是否相同,以便在模板中执行A。如果不是的话,B

我想如果我的句子是错的。。。 这是我第一次尝试Django,所以我可能错过了什么

这是我尝试过的和我的代码:

Models.py

class Comprobante(models.Model):
        id_sitio = models.ForeignKey('Sitio', models.DO_NOTHING, db_column='id_sitio', blank=True, null=True)

class Sitio(models.Model):
        id_sitio = models.IntegerField(primary_key=True)
        sitio = models.CharField(max_length=100, blank=True, null=True)

        def __str__(self):
            return self.sitio
Views.py

def topsitios(request):
    sitio = Sitio.objects.all()[0:100]
    comprobante = Comprobante.objects.all()[0:100]

    context = {'sitio': sitio, 'comprobante': comprobante}

    return render(request, "sitio_ptc/topsitios.html", context)
Template.html

{% block content %}

{% for s in sitio %}
<tr>
<th scope="row">  {{ forloop.counter }}</th>
<td> {{ s.sitio }} </td>

<td>
{% for c in comprobante %}
{% if s.id_sitio == c.id_sitio %}
comprobante ok
{% else %}
no payments
{% endif %}
{% endfor %}
</td> 

</tr> 
{% endfor %}
{% endblock %}
{%block content%}
{sitio%中s的%s}
{{forloop.counter}}
{{s.sitio}}
{comprobante%中c的%s}
{%if s.id_sitio==c.id_sitio%}
好的
{%else%}
不付款
{%endif%}
{%endfor%}
{%endfor%}
{%endblock%}

您的
Comprobante
对象的
id\sitio
是一个
外键
。这意味着
c.id_sitio
不是相关对象主键的值,而是
sitio
对象

您可以通过以下方式进行检查:

{% if s.id_sitio == c.id_sitio_id %}
  comprobante ok
{% else %}
  no payments
{% endif %}
{%if s.id_sitio==c.id_sitio_id%}
好的
{%else%}
不付款
{%endif%}
请注意,
ForeignKey
s通常没有
id_
前缀或
\u id
后缀,因为Django将自动添加一个带有
\u id
后缀的字段,该后缀包含它所引用对象的主键的值


但是,您的模板将多次打印
no payment
,因为您为
循环创建了一个嵌套的

您的
Comprobante
对象的
id\sitio
是一个
外键。这意味着
c.id_sitio
不是相关对象主键的值,而是
sitio
对象

您可以通过以下方式进行检查:

{% if s.id_sitio == c.id_sitio_id %}
  comprobante ok
{% else %}
  no payments
{% endif %}
{%if s.id_sitio==c.id_sitio_id%}
好的
{%else%}
不付款
{%endif%}
请注意,
ForeignKey
s通常没有
id_
前缀或
\u id
后缀,因为Django将自动添加一个带有
\u id
后缀的字段,该后缀包含它所引用对象的主键的值

但是,您的模板将多次打印
no payment
,因为您创建了一个嵌套的
for
循环