Мне нужно показать некоторые данные в таблице, но эти данные не находятся в одной таблице, как показать эти данные в одной таблице в django
Views.py
def meterstatistics(request):
varr = Meters_table.objects.all()
vark = Meter_Data_table.objects.all()
Lastkwh = Meter_Data_table.objects.last()
Lasttime = Meter_Data_table.objects.last()
d = {
'Lastkwh': Lastkwh, 'Lasttime': Lasttime, 'vark': vark, 'varr': varr
}
return render(request, 'meterstatistics.html', d)
models.py
class Meters_table(models.Model):
Meter_id = models.AutoField(unique=True, editable=False, primary_key=True)
Account_id = models.CharField(max_length=128)
Location_id = models.CharField(max_length=150, help_text="(ID of the locations table)")
RR_No = models.CharField(max_length=128)
Meter_type = models.CharField(max_length=150, help_text="(Industry,Residential &
Transformer)")
Meter_make = models.CharField(max_length=150)
Meter_model = models.CharField(max_length=150)
Usage_type = models.CharField(
max_length=150, help_text="(Industry,Residential & Transformer)")
def __str__(self):
return self.Usage_type
class Meter_Data_table(models.Model):
id = models.AutoField(unique=True, editable=False, primary_key=True)
Meter_id = models.CharField(max_length=150)
IMEI_Number = models.CharField(max_length=150)
KWH = models.CharField(max_length=128)
KVAH = models.CharField(max_length=150)
PF = models.CharField(max_length=150)
BMD = models.CharField(max_length=128)
Meter_time_stamp = models.DateTimeField(max_length=150)
Receive_time_stamp = models.DateTimeField(max_length=150)
def __str__(self):
return self.Meter_id
HTML
<table id="table">
<thead class="thead-light bg-primary">
<tr>
<th scope="col">Meter_id</th>
<th scope="col">DCU IMEI</th>
<th scope="col">RR No</th>
<th scope="col">Last KWH</th>
<th scope="col">PF</th>
<th scope="col">Last Meter Time Stamp</th>
<th scope="col">Location</th>
<th scope="col">Frequency</th>
<th scope="col">Relay</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<tr>
{% for i in vark %}
<td>{{i.Meter_id}}</td>
<td>{{i.IMEI_Number}}</td>
<td>{{i.RR_No}}</td>
<td>{{i.KWH }}</td>
<td>{{i.PF}}</td>
<td>{{i.Meter_time_stamp }}</td>
<td></td>
<td></td>
<td><label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label></td>
<td>
<a href="{% url 'graph' %}"><i style="font-size: 30px;" class="fa fa-eye"
aria-hidden="true"></i> </a>
<a href="metertableedit/{{i.Meter_id}}"><i style="font-size: 30px;"
class="fa fa-pencil-square-o" aria-hidden="true"></i></a>
<!-- <a href="delmetertable/{{i.Meter_id}}"><i style="font-size: 30px;"
class="fa fa-trash" aria-hidden="true"></i></a> -->
<!-- </button> -->
</td>
</tr>
</tbody>
{% endfor %}
</tbody>
</table>
мне нужно показать все данные на веб-странице, но эти данные не в одной таблице, а в разных таблицах, используя цикл for loop можно показать только одну таблицу введите описание изображения здесь и как присоединить эту таблицу И как показать данные в таблице веб-страницы без использования forloop внутри forloop.
Ты ....!
Я бы добавил ForeignKey из таблицы Meter в таблицу Meter_Data
class Meter_Data_table(models.Model):
meter = models.ForeignKey(Meters_table, on_delete=models.CASCADE)
В файле views.py выберите все необходимые данные, используя "select_related" для включения данных счетчика в запрос к БД данных.
vark = Meter_Data_table.objects.select_related('meter').all().order_by('meter')
Таким образом, доступ к данным счетчика можно получить через ForeignKey, используя один запрос:
for i in vark:
print(i.meter.Location_id)
В примере шаблона:
{{i.meter.Location_id}}
template.html
<tr>
{% for i in vark %}
<td>{{i.Meter_id}}</td>
<td>{{i.IMEI_Number}}</td>
<td>{{i.RR_No}}</td>
<td>{{i.KWH }}</td>
<td>{{i.PF}}</td>
<td>{{i.Meter_time_stamp }}</td>
<td>{{i.meter.Location_id}}</td>
<td></td>
<td><label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label></td>
<td>
<a href="{% url 'graph' %}"><i style="font-size: 30px;" class="fa fa-eye"
aria-hidden="true"></i> </a>
<a href="metertableedit/{{i.Meter_id}}"><i style="font-size: 30px;"
class="fa fa-pencil-square-o" aria-hidden="true"></i></a>
<!-- <a href="delmetertable/{{i.Meter_id}}"><i style="font-size: 30px;"
class="fa fa-trash" aria-hidden="true"></i></a> -->
<!-- </button> -->
</td>
</tr>