Django如何从模板中的查询集获取查询集

时间:2020-06-24 07:18:59

标签: python django django-queryset

我要过滤依赖于另一个已经依赖于另一个查询集的另一个查询集的查询集

我的模型。py

class Escola(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)
    nome = models.CharField(db_column='Nome', max_length=255, blank=True, null=True)

class Inscrio(models.Model):
    id = models.AutoField(db_column='ID', primary_key=True)
    escolaid = models.ForeignKey(Escola, models.DO_NOTHING, db_column='EscolaID', blank=True, null=True)

class Utilizador(AbstractBaseUser)
    id = models.AutoField(db_column='ID', primary_key=True)
    inscriçãoid = models.ForeignKey(Inscrio, models.DO_NOTHING, db_column='InscriçãoID', blank=True, null=True)

我的views.py

def view_forms(request):
   return render(request, 
                 "main/view_forms.html", 
                 {"escolas": Escola.objects.all(),
                 })

我在做

{% for escola in escolas %}
   {% for inscrio in escola.inscrio_set.all %}
        {% for utilizador in inscrio.utilizador_set.all %}
            <tr>
            <td><center>{{inscrio.id}}</center></td>
            <td><center>{{escola.nome}}</center></td>
            <td><center>{{utilizador.id}}</center></td> 
        {% endfor %}
    {% endfor %}
{% endfor %}

我目前正在尝试从Escola获取Inscrio数据。 但是,当我尝试从Inscrio获取Utlizador数据时,却一无所获。

我该怎么做?

预先感谢

2 个答案:

答案 0 :(得分:0)

Escola.objects.all方法未执行,而是作为方法传递到模板中。

要解决此问题,请在结尾处添加括号。 Escola.objects.all()

答案 1 :(得分:0)

如果要扩展AbstractBaseUser,则应提供USERNAME_FIELD

此处Utlizador由于此错误而没有保存任何记录,因此请按如下所示进行纠正

class Utilizador(AbstractBaseUser):
    id = models.AutoField(db_column='ID', primary_key=True)
    inscriçãoid = models.ForeignKey(Inscrio, models.DO_NOTHING, db_column='InscriçãoID', blank=True, null=True)
    username = None
    email = models.EmailField('email address', unique=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []