Django从两个表中获取数据,仅相关数据

时间:2016-04-05 02:25:51

标签: django django-templates django-views

好的,我有一个显示图片的主页。这可以从我的图像表中访问。它包含所有者的列,以用户ID的形式。我还有一个用户表,他们已经提交了这些图片。我该怎么做才能在显示图像时使用ID从用户表中获取用户名?

views.py:

def index(request):
    context = {}
    populateContext(request, context)
    context.update(gallery=ImageDoc.objects.only('thumbfile').order_by('-id'))

    return render(request, 'register/index.html', context)

所以在index.html页面中,我可以遍历' gallery'显示图像。像这样:

{% for image in gallery %}
    <a href="/logo/{{ image.slug }}">
        <img src="{{ MEDIA_URL }}{{ image.largethumbfile }}">
        {{ image.title }} by {{ image.username }} for {{ image.price }}
    </a>
{% endfor %}

&#34; image.username&#34;显然不起作用。我知道我需要访问users表:

get_users = User.objects.get()

重新格式化抓取图像数据:

get_images = ImageDoc.objects.get()

但我不知道确保数据匹配的下一步。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果Images表将Users表作为外键,则每个Images对象将具有user_id参数。因此,如果您有一个名为given_user_id的值,则可以执行以下操作:

Images.objects.get(user_id=given_user_id)

如果您有username而不是user_id,则可以执行以下操作:

Images.objects.get(user=User.objects.get(username=username))

不幸的是,您无法在模板块内执行查询。在将上下文对象传递给渲染函数之前,您需要进行任何查询。