я писал код для поля поискового запроса с внешним ключом. поэтому, когда я ищу команду устройства, я должен иметь возможность получить команду, относящуюся к этому типу устройства, но, к сожалению, она не работает
я нашел код в Интернете, я сделал аналогичный способ, но когда я ищу, он не вернуть любой результат, и моя таблица полностью пуста
Это мой код
models.py
class DeviceType(models.Model):
devicetype = models.CharField(max_length=100)
category = models.ForeignKey(
Category, on_delete=models.CASCADE)
def __str__(self):
return self.devicetype
class DeviceTypeCommand(models.Model):
devicetypename = models.ForeignKey(
DeviceType, on_delete=models.CASCADE)
command = models.ForeignKey(
Command, on_delete=models.CASCADE)
def __str__(self):
return self.devicetypename
def get_absolute_urlwork(self):
return reverse("edit_devicetypecommand", kwargs={"id": self.id})
forms.py
class DeviceTypeCommandForm(BSModalForm):
class Meta:
model = DeviceTypeCommand
fields = [
'devicetypename',
'command',
]
class DeviceTypeForm(BSModalForm):
class Meta:
model = DeviceType
fields = [
'devicetype',
'category',
]
view.py
def execute_selected(request, id=None):
instance = get_object_or_404(Device, id=id)
form = DeviceTypeCommandSearchForm(request.POST or None)
queryset = DeviceTypeCommand.objects.all()
context = {
"form": form,
"queryset": queryset,
}
if request.method == 'POST':
queryset = DeviceTypeCommand.objects.filter(devicetypename__devicetype__icontains=form['devicetypename'].value())
context = {
"queryset": queryset,
"form": form,
}
return render(request, "selected_command.html", context)
html file
{% load static %}
{% load crispy_forms_tags %}
<!doctype html>
<html lang="en">
<head>
<title>Mannai Co.</title>
<link href="{% static 'assets/other/bootstrap.min.css' %}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'assets/other/stylesheet.css' %}">
</head>
<form method="post" action="">
{% csrf_token %}
{{form|crispy}}
<input class="btn btn-primary" type="submit" value="Search" />
</form>
<body id="bodylayout">
<center class="fadeIn First">
<br>
<h3 style="color: #c2c1c1">Device Type Command </h3>
</center>
<br>
<a class="fadeIn First" href='/createdtc/'>
<button class="work" style="margin-left: 151px;">
Create Device Type Command
</button>
</a>
<center class="fadeIn First">
<div style="width: 80%;">
<table cellspacing="0" width="100%">
<thead style="background-color: #2a3747; color: #c2c1c1;">
<tr>
<th class="th-sm">#</th>
<th class="th-sm">Device Type</th>
<th class="th-sm">Command</th>
<th class="th-sm">delete</th>
</tr>
</thead>
<tbody>
{% for instance in queryset %}
<tr style="background-color: #272727; color: #ffffff;">
<td>{{forloop.counter}}</td>
<td>{{instance.devicetypename}}</td>
<td>{{instance.command}}</td>
<td> <a href='{{instance.get_absolute_urlwork}}'>
<button class="btn btn-primary">
Update
</button></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</center>
<script src="{% static 'js/jquery-3.4.1.slim.min.js' %}" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src= "{% static "js/jquery.slim.min.js" %}"><\/script>')</script>
<script src="{% static 'js/bootstrap.bundle.min.js' %}"
integrity="sha384-6khuMg9gaYr5AxOqhkVIODVIvm9ynTT5J4V1cfthmT+emCG6yVmEZsRHdxlotUnm"
crossorigin="anonymous"></script>
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/jquery.dataTables.min.js' %}"></script>
<script type="text/javascript">
</script>
</body>
</html>
вывод при поиске даст мне нулевой запрос и не даст результатов
Вывод перед поиском
вывод после нажатия кнопки поиска
, пожалуйста, помогите