Мой вид не получает и не привязывает данные из формы.
Цель страницы формы стандартная. Страница формы загружается без ошибок, пользователь вводит данные, если форма ошибок перезагружается с предыдущими пользовательскими данными и вызываются ошибки. Если форма действительна, она сохраняет данные в БД.
Я следовал документации Django Формы и прочитал потоки переполнения стека, но не смог достичь вышеуказанного поведения.
FORM.PY
from django import forms
class templateForm(forms.Form):
TemplateName = forms.CharField(max_length=50)
Descriptions = forms.CharField(initial="User Name & Date")
Contents = forms.CharField(required= False, max_length=50, widget=forms.HiddenInput())
CPU_Quantity = forms.IntegerField(initial=1)
Memory_Quantity = forms.IntegerField(initial=12)
VIEWS.PY
class Add_Server_Template(View):
def post (self, request):
#If this is a POST then process the form data
if request.method == 'POST':
### Binds user data to form
form = templateForm(request.POST)
if form.is_valid():
# <process form cleaned data>
model_instance = form.save(commit=False)
model_instance.save()
return render(request, "Server_Template/index.html", {'form': form})
### if form is not valid. Re-render form with user data.
else:
form = templateForm()
return render(request, 'Server_Template/index.html', {'form': form})
URLS.PY
url(r'serverstructure/add/$', views.Add_Server_Template.as_view(), name='serverStructure-Add'),
ШАБЛОН
Configtempaltes . html
{% extends 'Server_Template/base.html' %}
{% block body %}
{% load bootstrap4 %}
<div class="container-fluid" >
<div class="row">
<div class="col-sm-4 col-sm-offset-1" >
<h3>Server Template</h3>
</div>
</div>
<div class=".col-sm-1">
<div class="panel-body">
<!-- Render Edit/Add Form -->
<form class = "form-horizontal" role="form" action ="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<!-- Display form fields from Config Template Module -->
{% include 'Server_Template/form-template_dynamic.html' %}
<div class = "form-group">
<div class="col-sm-4 col-sm-offset-2" >
<button type="submit" class="btn btn-success btn-sm" value="save">Submit</button>
</div>
</div>
</form>
</div>
</div>
</div> <!-- Container -->
{% endblock %}>
form-template_dynami c. html
{% if form.errors %}
<!-- Error messaging -->
<div id="errors">
<div class="inner">
<p style="color:firebrick">There were some errors in the information you entered. Please correct the following:</p> </br>
</div>
</div>
<!-- /Error messaging -->
{% endif %}
{%for field in form %}
<div class = "row">
<div class ="form-group">
{% if field.errors %}
<label class="control-label col-sm-2" for = "{{field.label}}" style = "color:firebrick"> {{ field.label }} </label>
{% else %}
<label class="control-label col-sm-2" for = "{{field.label}}"> {{ field.label }} </label>
{% endif %}
<div class="input-group-append">
<div class="col-sm-3">
<input type="text" class="form-control" value="{{field.value}}" id="{{field.label}}" name="{{field.label}}">
</div>
</div>
</div> <!-- form-group -->
</div> <!-- Row -->
{% endfor %}