如何从视图中传递两个或多个对象以在模板中呈现它

时间:2014-09-15 17:19:10

标签: django

我正在研究Django,我需要将两个或更多个对象传递给视图,以便在模板中渲染它。我的意思是, 我有一个对象,这个对象可以有两个或多个来自其他模型的对象,在视图中我有:

def infoUsuario(request,id_usuario):
    user = info_productor_cultivador.objects.get(id=id_usuario)
    familiar = grupo_familiar.objects.filter(familiar_de_id=user)
    ctx = {'usuario':user,'familiar':familiar}
    return render_to_response('usuarios.html',ctx,context_instance=RequestContext(request))

在模板中:

{% for familiares in familiar %}
    <p>{{familiar.primer_nombre}}</p>
{% endfor %}

模特:

class grupo_familiar(models.Model):
    familiar_de = models.ForeignKey(info_productor_cultivador)
    primer_nombre = models.CharField(max_length=50)

class info_productor_cultivador(models.Model):
    primer_nombre = models.CharField(max_length=50)

首先,改为&#34;过滤&#34;在熟悉的对象中,我有&#34;得到&#34;但是我说:&#34; get()返回了多个grupo_familiar - 它返回2!&#34;寻找解决方案我发现它必须通过&#34;过滤器&#34;查询,这次我没有来自Django的错误,但是#34;熟悉的&#34;对象不会在模板中呈现它。

换句话说,我认为我需要的是如何在视图中传递外键并在模板中呈现它。

由于

1 个答案:

答案 0 :(得分:1)

视图

from django.shortcuts import render

def info_usuario(request, id_usuario):
    user = info_productor_cultivador.objects.get(id=id_usuario)
    familiar = grupo_familiar.objects.filter(familiar_de_id=user)
    ctx = { 'usuario': user, 'familiar': familiar }
    return render(request, 'usuarios.html', ctx }

模板

{% for familiares in familiar %}
    <p>{{ familiar.primer_nombre }}</p>
{% endfor %}