Django - Невозможно получить конкретные данные из модели в представление
Немного застрял на получении определенных данных из модели через "POST" в представление. только хочу, чтобы IP был "POST" обратно в представление.
Вот моя функция, которая получает данные поста с веб-страницы. Она получает данные нормально, но все, что мне нужно, это один элемент из определенной строки. Она не позволяет мне изменять html, так как я получаю следующую ошибку при изменении значения опции в html на " ipofnode.ip_address_field " с "ipofnode.id"
" Поле 'id' ожидало число, но получило '192.168.1.1'. "
Если я сохраняю значение "ipofnode.id", то он распечатывает всю строку на веб-странице просто отлично. Я только хочу, чтобы IP был "POST" обратно в представление, чтобы я мог сохранить его как строку и передать его.
1: 192.168.0.216:R1-ISP:VMX
def inventory(request):
if request.method == "POST":
ipnode = Nodes.objects.get(pk=request.POST["ipofnode"])
#savedip = ipnode.ip_address_field.all()
listip.append(ipnode)
return render(request, "hwinventory/hwinventory.html",{
"allnodesips":Nodes.objects.all()})
hwinventory.html
{%extends "home/layout.html"%}
{% block body%}
<h1 style="text-align:center;">Inventory Check</h1>
<form action="{% url 'inventory' %}" method="post">
{% csrf_token %}
<select name="ipofnode">
{% for ipofnode in allnodesips %}
<option value="{{ ipofnode.id }}">{{ipofnode.hostname}}</option>
{% endfor %}
</select>
<input type="submit">
</form>
<a href="{% url 'resultsinventory' %}">View Results</a>
{%endblock%}
МОДЕЛЬ
class Nodes(models.Model):
ip_address_field = models.GenericIPAddressField()
hostname= models.CharField(max_length=30)
device_type= models.CharField(max_length=30,default='')
def __str__(self):
return f"{self.ip_address_field}:{self.hostname}:{self.device_type}"
Думаю, это может помочь:
if request.method == "POST":
ip = request.POST['ipofnode']
ip_address = Nodes.objects.filter(ip_address_field=ip)
return render(request, "hwinventory/hwinventory.html",{"allnodesips":ip_address})