繁体   English   中英

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

[英]Django How to get a queryset from a queryset in template

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

我的模型.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)

我的观点.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 数据时,我什么也没得到。

我怎样才能做到这一点?

提前致谢

Escola.objects.all方法不执行,作为方法传入模板。

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

如果您正在扩展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 = []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM