Ссылки на связанные с Django объекты в шаблоне
Невозможно отобразить набор ссылок на связанные объекты через отношения внешнего ключа в шаблоне HTML.
Вот код на данный момент.
models.py:
class MprVw(models.Model):
payloadid = models.TextField(db_column='payLoadID', blank=True, null=True)
file = models.TextField(db_column='File', primary_key=True)
class Meta:
managed = False
db_table = 'MPR_VW'
class MprWi(models.Model):
id = models.TextField(db_column='id', primary_key=True)
payloadid = models.TextField(db_column='payLoadID', blank=True, null=True)
file = models.ForeignKey(MprVw, on_delete=models.DO_NOTHING, db_column='File')
class Meta:
managed = False
db_table = 'MPR_WI'
views.py:
def MPR(request):
myDls = request.GET.get("dls")
myMPR = MprVw.objects.filter(dls=myDls)
myMprWi = MprWi.objects.select_related("file")
context = {
'myMPR': myMPR,
'myMprWi': myMprWi,
'myDls': myDls,
}
MPR = loader.get_template('MPR.html')
return HttpResponse(MPR.render(context, request))
HTML:
{% for rowmyMPR in myMPR.mprwi_set.all %}
<tr>
<td>{{ rowmyMPR.file }}
{{ rowmyMPR.id }}
</td>
</tr>
{% endfor %}
Я ожидаю отображения данных строк из myMprWi, которые являются дочерними записями родительского файла myMPR. Отображаются данные с "MprVw object ()" вокруг них. Как избавиться от этого?
Например: Объект MprVw (<номер файла ряда>) < номер идентификатора ряда>
myMPR
- это не MprVw
объект, а QuerySet
из нуля, одного или нескольких MprVw
элементов. Таким образом, чтобы получить такой объект, необходимо выполнить перечисление, поэтому:
from django.shortcuts import render
def MPR(request):
myDls = request.GET.get('dls')
myMPRs = MprVw.objects.filter(dls=myDls)
context = {
'myMPRs': myMPRs,
'myDls': myDls,
}
return render(request, 'MPR.html', context)
и в шаблоне:
{% for myMPR in myMPRs %}
{% for rowmyMPR in myMPR.mprwi_set.all %}
<tr>
<td>{{ rowmyMPR.file }}
{{ rowmyMPR.id }}
</td>
</tr>
{% endfor %}
{% endfor %}