Python 如何询问table1.id==table2.id是否为?
我想确定table1.id_sitio和table2.id_sitio是否相同,以便在模板中执行A。如果不是的话,B 我想如果我的句子是错的。。。 这是我第一次尝试Django,所以我可能错过了什么 这是我尝试过的和我的代码: Models.pyPython 如何询问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=
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
循环