Представленная форма не сохраняется в sql-dJango

108
9

Я искал некоторые сообщения об этой проблеме, но до сих пор не нашел решения. После нажатия кнопки "отправить" страница может перенаправляться на другую страницу. Но база данных sql не отображает представленную информацию.

Заранее благодарю за ваше предложение.

views.py

@csrf_exempt
def input(request):
if request.method == 'POST':
form = InputForm(request.POST or None, request.FILES or None)
if form.is_valid():
company = form.cleaned_data['company']
region = form.cleaned_data['region']
uom= form.cleaned_data['uom']
start_date= form.cleaned_data['start_date']
end_date= form.cleaned_data['end_date']
add_input=Input.objects.create(company=company,region=region,uom=uom,start_date=start_date,end_date=end_date)
add_input.save()
return redirect('resut')
else:
print(form.errors)
else:
form = InputForm(initial={'company':'coco','uom':'M$'},instance=Input)
return render_to_response('inputform.html',{'form': form})

models.py

class Input(models.Model):
company=models.CharField(max_length=100)
region=models.CharField(max_length=100)
uom=models.CharField(max_length=100)
start_date=models.DateField(auto_now=False, auto_now_add=False)
end_date=models.DateField(auto_now=False, auto_now_add=False)

forms.py

class InputForm(forms.ModelForm):
company=forms.CharField(widget=forms.TextInput, label="Company",error_messages={'required': 'Please enter your name'},required=True)
regionlist = forms.ModelChoiceField(queryset=Dupont.objects.values('region').distinct())
uom=forms.CharField(required=True)
start_date=forms.DateField(widget=DateInput(),required=True)
end_date = forms.DateField(widget=DateInput(),required=True)
error_css_class='error'
required_css_class = 'required'

class Meta:
model = Input
fields = ('company', 'region','uom','start_date','end_date')
widgets = {
'start_date': forms.DateInput(attrs={'class':'datepicker'}),
'end_date': forms.DateInput(attrs={'class':'datepicker'}),
}

html-фрагмент

<form action="{% url 'result' %}" method="post">{% csrf_token %}

<!--company-->
<div class="field">
<p>Company:<input type="text" name="company" value="{{company}}"/>
</div>

<!--region-->
<div class="field" >
<label> Select the Region:
{{ form.regionlist }}
{% for region in form.regionlist.choices %}
<option value="{{ val }}" {% ifequal data.val val %}selected {% endifequal %}></option>
{% endfor %}
</label>
</div>

<!--uome-->
<div class="field">
<p>Unit of Measure:<input type="text" name="uom" value="{{uom}}"/>
</div>

<!--start date-->
<label for="startDate">Start Month:</label>
<input name="start_date" id="startDate" class="date-picker"/>

<!--END date-->
<label for="endDate">End Month:</label>
<input name="end_date" id="endDate" class="date-picker" />

<!--submit-->
<div class="fieldWrapper">
<p><input type="submit" value="Submit" /></p></div>

{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-error">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-error">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}

</form>

спросил(а) 2021-01-25T16:38:13+03:00 4 месяца, 4 недели назад
1
Решение
88

Нет, точка действия для другого представления вместо представления ввода. Я не вставляю это представление, потому что проблема теперь в том, что данные этой формы не сохраняются успешно.

Ну, тогда это ваша проблема, когда вы отправляете форму, она переходит к указанному действию. Если фрагмент является inputform.html как я подозреваю, вам просто нужно удалить действие из вашей формы.

<form method="post">

ответил(а) 2021-01-25T16:38:13+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема