Как dsiplay значение из другой модели на основе того же, если сформировать другую модель в django - PullRequest
1 голос
/ 02 апреля 2020

У меня есть дБ и следующие классы:

в models.py

class Student(models.Model):
    name=models.CharField(max_length=200)
    surname=models.CharField(max_length=500)

class Class101(models.Model):
    name=models.CharField(max_length=200)
    math=models.DecimalField(max_length=200)
    english=models.DecimalField(max_length=200)

в views.py

total_grade=Class101.objects.filter(Q(math__gt=70) & Q(english__gt=58))

context ={'tg':total_grade}

в template.html

{% for grade in tg %}

 <p> {{grade.name}} </p>  

{% endfor %}

в нем указаны имена учащихся, однако я хочу указать их в шаблоне:

{{grade.name}} - {{grade.surname}}

{{grade.surname}} где фамилия взята из модели Student

Этот код не отображает фамилию но только имя как имя в классе Class101. Как заставить отображать фамилию от другой модели, где обе модели имеют одинаковые названия?

1 Ответ

1 голос
/ 02 апреля 2020

В этом случае у вас должно быть отношение ForeignKey между Class101 и Student моделью, например:

class Student(models.Model):
    name=models.CharField(max_length=200)
    surname=models.CharField(max_length=500)

class Class(models.Model):
    code = models.CharField(max_length=100)
    student=models.ForeignKey(Student, on_delete=models.CASCADE)
    math=models.DecimalField(max_length=200)
    english=models.DecimalField(max_length=200)

Тогда вы можете использовать значение Student в шаблоне:

{% for grade in tg %}

 <p> {{grade.student.name}} - {{grade.student.surename}} </p>  

{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...