Я хочу выполнить запрос, который возвращает все устройства для каждого местоположения.
models.py
class Devices(models.Model):
device_hostname = models.CharField(max_length=30)
device_ip = models.CharField(max_length=35)
device_type = models.CharField(max_length=40)
device_serial_number = models.CharField(max_length=35, )
device_service_tag = models.CharField(max_length=35, default=None)
device_model = models.CharField(max_length=35, default=None)
vendor = models.ForeignKey(Vendor, on_delete=models.CASCADE)
locations = models.ForeignKey(Locations, on_delete=models.CASCADE)
maintenance = models.ForeignKey(Maintenance,on_delete=models.CASCADE, null=True, blank=True)
def __str__(self): # returns string
return self.device_hostname
def __unicode__(self):
return self.device_hostname
и для местоположений
class Locations(models.Model):
location_name = models.CharField(max_length=20)
location_address = models.TextField(max_length=15)
location_city = models.CharField(max_length=35)
location_state = models.CharField(max_length=30)
location_zip = models.CharField(max_length=15)
location_country = models.CharField(max_length=30)
def __str__(self): # returns string
return self.location_name
def __unicode__(self):
return self.location_name
My search_device_list. html выглядит следующим образом:
<h2 align="center">Search Page</h2>
{% if dev_loc %}
<table>
<tr>
<td><b>Locations:</b></td>
<td><b>Device</b></td>
{% csrf_token %}
{% for locations in dev_loc%}
</tr>
<tr>
<td id="location_name"> {{device.locations.location_name}} <br>}</td>
<td = "dev_loc_search">{{device.device_hostname}}
</tr>
{% endfor %}
</table>
{% endif %}
<br>
, когда мой views.py выглядит следующим образом:
def search_device_list(request):
locations = Locations.objects.all()
dev_loc= Devices.objects.filter(locations__in= locations)
context = {"dev_loc": dev_loc}
return render(request, 'inventory/search_device_list.html', context)
Я не получаю сообщение об ошибке, но я не получаю получить рендеринг Местоположения и устройства без данных
Когда мой код для views.py выглядит следующим образом:
def search_device_list(request):
locations = Locations.objects.all()
dev_loc= Devices.objects.filter(locations = locations)
context = {"dev_loc": dev_loc}
return render(request, 'inventory/search_device_list.html', context)
Я получаю сообщение об ошибке:
ValueError в / inventory / search_device_list /
Значение QuerySet для точного поиска должно быть ограничено одним результатом с использованием нарезки.
Я потратил часы, настраивая это без успех. Любые советы приветствуются.