我正在研究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;对象不会在模板中呈现它。
换句话说,我认为我需要的是如何在视图中传递外键并在模板中呈现它。
由于
答案 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 %}