怎么问table1.id == table2.id在里面呢?

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

我认为我的if句子是错误的... 这是我第一次尝试使用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,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 %}
hewei600 回答:怎么问table1.id == table2.id在里面呢?

您的abort(Redirect::route('nextroute'));对象的id_sitioComprobante。因此,这意味着ForeignKey不是相关对象的主键的值,而是一个c.id_sitio对象。

您可以使用以下方法进行检查:

Sitio

请注意,通常{% if s.id_sitio == c.id_sitio_id %} comprobante ok {% else %} no payments {% endif %}的前缀不是 ,而前缀ForeignKeyid_,因为Django会自动添加带有{{1} }后缀,包含它所引用对象的主键的值。

但是,由于创建了嵌套的_id循环,您的模板将多次打印_id

本文链接:https://www.f2er.com/3161175.html

大家都在问