Django модельных запросов; как присоединиться к столам на foriegnkey - PullRequest
0 голосов
/ 06 мая 2020

models.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')

что нужно добавить к этому коду для доступа к имени человека с именем person.name в шаблоне html?

1 Ответ

0 голосов
/ 06 мая 2020

Согласно вашему коду, Person не имеет свойства name .

filter () возвращает QuerySet, который можно повторять в вашем шаблоне.

Передайте свою переменную person в свой шаблон.

view:

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

template:

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