Попытка сделать что-то простое здесь, где я передаю IP-адрес из формы в другое представление. Раньше у меня были успехи после начинающих уроков. Если бы кто-то мог указать мне на то, что мне не хватает, это было бы огромной помощью.
модель:
class GenericIP(models.Model):
name = models.CharField(max_length=50)
genericip = models.GenericIPAddressField()
def __str__(self):
return self.name
форма:
class IpForm(forms.Form):
gateway = ModelChoiceField(queryset=GenericIP.objects.order_by('name').values_list('genericip', flat=True).distinct())
просмотров:
def TestCreate(request):
if request.method == 'GET':
form1 = IpForm()
return render(request, 'create_test.html', {'form1' : form1} )
else:
if request.method == 'POST':
form1 = IpForm()
if form1.is_valid():
genericip = form1.cleaned_data
genericip.save()
return render(request, 'create_test.html', {'genericip' : genericip} )
def RunTest(request, genericip=""):
if request.method == 'POST':
Server = genericip
return HttpResponse(Server)
URL:
urlpatterns = [
path('', views.TestCreate, name='create_test'),
path('run_test', views.RunTest, name='run_test',),
]
шаблон:
{% block content %}
<form action="{% url 'run_test' %}"method='post'>
{% csrf_token %}
{{ form1 }}
<input type='submit' class="btn btn-success" value='Run Test'>
</form>
{% endblock %}
Итак, когда я нажимаю кнопку для запуска теста, я ничего не получаю для httpresponse. Данные публикации для представления TestCreate показывают переменную «genericip» и ввод «192.168.100.100», но эти данные неправильно публикуются в представлении выполнения.