首页 > 解决方案 > Django 模型查询;如何在外键上连接表格

问题描述

模型.py

class Person(models.Model):
    email = models.CharField(max_length=30)
    pwd = models.CharField(max_length=30)
    type = models.CharField(max_length=30)

class user_details(models.Model):
    name = models.CharField(max_length=30)
    gender = models.CharField(max_length=30)
    phoneno = models.CharField(max_length=13)
    u_id = models.ForeignKey('Person', on_delete=models.CASCADE)


class User_locations(models.Model):
    country = models.CharField(max_length=30)
    state = models.CharField(max_length=30)
    district = models.CharField(max_length=30)
    locality = models.CharField(max_length=30)
    u_id = models.ForeignKey('Person', on_delete=models.CASCADE)

我想查询 Person.type='A' 和 User_locations.locality='B' 的人。我还想在模板中使用 Person.name 访问一个人的名称。

我现在在views.py中使用这个代码

person = Person.objects.filter(type='A', user_locations__location='B')

应该在此代码中添加什么来访问 html 模板中带有 person.name 的人的姓名?

标签: pythondjangodjango-models

解决方案


根据您的代码, Person 没有name属性。

filter() 返回一个可以在模板中迭代的 QuerySet。

将您的人员变量传递给您的模板。

看法:

persons = Person.objects.filter(type='A', user_locations__location='B')

模板:

{% for person in persons %}
    {{ person.your_property }}
{% endfor %}

推荐阅读