如何在django模板中呈现queryset

时间:2015-06-07 15:25:16

标签: django templates for-loop django-queryset

我正在使用此代码进行渲染

def ShowContent(dic, htmlpage):
    plantilla = get_template(htmlpage)
    c = Context(dic)
    renderizado = plantilla.render(c)
    return HttpResponse(renderizado)

我想代表这个查询,所以我使用了AllQuery' dict for' todas.html'。

def ShowAll(request):
    AllQuery = Actividad.objects.all().order_by('fecha')
    print AllQuery
    return ShowContent(AllQuery, 'todas.html')

我不知道如何在我的模板中表示它

                    <tr>
                        <td></td>
                        <td> </td>
                        <td> </td>
                        <td> </td>
                        <td> </td>
                    </tr>

来自models.py的Actividad

 class Actividad(models.Model):
    id_evento = models.IntegerField(primary_key=True)
    titulo = models.CharField(max_length=100)
    tipo_evento = models.CharField(max_length=50)
    gratis = models.BooleanField(default=False)
    fecha = models.DateField()
    hora = models.TimeField()
    largo = models.BooleanField(default=False)
    url = models.URLField(max_length=128)

任何想法?我认为这很容易,但我没有得到它。我试过这个:

                            {% for i in AllQuery %}
                                { AllQuery.i.titulo }
                            {% endfor %}

来自观点,我可以访问

def ShowAll(request):
    AllQuery = Actividad.objects.all().order_by('fecha')
    print AllQuery[0].titulo

1 个答案:

答案 0 :(得分:2)

只需使用通用列表视图,这将使您的生活更轻松,节省一些时间。

class ListView(generic.ListView)
    model=Actividad
    template_name='todas.html'

然后在您的模板中,您可以显示如此列表

{% for i in object_list %}
    {{ i.titulo }}
{% endfor %}