У меня есть 2 модели: одна определяет все устройства, которые у меня есть, а другая хранит информацию, которую получают эти устройства. Их код следующий:
class Device(models.Model):
dev_eui = models.CharField(max_length=16, primary_key=True)
producer = models.CharField(max_length=20, blank=True, null=True)
model = models.CharField(max_length=20, blank=True, null=True)
firmware = models.CharField(max_length=10, blank=True, null=True)
dev_name = models.CharField(max_length=20, blank=True, null=True)
description = models.CharField(max_length=40, blank=True, null=True)
fixed = models.BooleanField()
dev_lat = models.FloatField(null=True, blank=True)
dev_lon = models.FloatField(null=True, blank=True)
deco_name = models.CharField(max_length=20)
fleet_id = models.IntegerField(null=True, blank=True)
class DevData(models.Model):
data_uuid = models.UUIDField(primary_key=True, default=uuid.uuid1, editable=False)
data_id = models.IntegerField()
dev_eui = models.CharField(max_length=16)
gateway = models.CharField(max_length=25)
data_timestamp = models.DateTimeField()
rssi = models.IntegerField()
snr = models.IntegerField()
datarate = models.CharField(max_length=15)
frequency = models.IntegerField()
seq = models.IntegerField()
data_1 = models.FloatField()
data_2 = models.FloatField(null=True, blank=True)
data_3 = models.FloatField(null=True, blank=True)
data_4 = models.FloatField(null=True, blank=True)
data_5 = models.FloatField(null=True, blank=True)
data_6 = models.FloatField(null=True, blank=True)
data_7 = models.FloatField(null=True, blank=True)
На самом деле я хочу показать таблицу в моем шаблоне, объединяя все данные из devData
и добавляя dev_name
и fleet_id
из * 1007. *.
Теперь я получаю все данные и фильтрую их в шаблоне. Но я уверен, что в views.py
лучше и проще делать это, но я не знаю как.
Читая некоторую информацию, я нашел функцию union()
, но она не работает, и я не уверен, что это лучший вариант,
@login_required(login_url='/user_app/login/')
def user_data(request):
dev_data = DevData.objects.all()
devices = Device.objects.all()
test = DevData.objects.all().values_list(
"dev_eui"
).union(
Device.objects.all().values_list(
"dev_eui"
))
ctx = {'DevData':dev_data,'Devices':devices, 'Test':test}
return render(request, template_name='data.html', context=ctx)
Это объединение ничего не показывает.
Кто-нибудь может мне помочь? Большое спасибо!