#python #django #django-views
#python #django #django-views
Вопрос:
Я пытаюсь создать форму в django. Сначала он не создавал объект формы, затем он не сохранял данные, и теперь я получаю «Просмотр getdata.views.getview не вернул объект HttpResponse. Вместо этого он вернул None «. ошибка. Это мой views.py файл
def getview(request):
if request.method == 'POST':
form1 = ro_input_form(
request.POST) # Please use CamelCase when writing Class Name(according to pep8 style guide
if form1.is_valid():
form1.origin = form1.cleaned_data['origin']
form1.destination = form1.cleaned_data['destination']
form1.timeWindow = form1.cleaned_data['time_window']
print(form1.origin, form1.destination, form1.time_window)
form1.save()
else: # Handling GET request here
form1 = ro_input_form()
return render(request, 'inputform.html', {'form1': form1})
Это мой forms.py:
from django import forms
from .models import form_input
class ro_input_form(forms.ModelForm):
class Meta:
model = form_input
fields = ('origin', 'destination', 'timeWindow')
Это мой HTML-файл :
<form method="Post">
{% csrf_token %}
{{form1}}
<input type="submit" class="forform" value="sumbit values">
</form>
Комментарии:
1. ваш код содержит несколько повторяющихся строк,
request.method == "POST"
записывается дважды иform1 = ro_input_form(request.POST)
записывается дважды, просто вызовите его один раз, в любом случае, возвращаясь к вашему вопросу, можете ли вы увидеть эти инструкции печати, выводимые на вашей консоли?2. Можете ли вы исправить отступ в вашем коде view?
3. @SammyJ Я отредактировал views.py но он не следует ни за каким post-запросом в этом.
4. @JPG Я отредактировал views.py но он не следует ни за каким post-запросом в этом.
Ответ №1:
Если ваш отступ правильный, то вам необходимо обновить ваше представление для обработки GET
запроса:
def getview(request):
form1 = ro_input_form(request.POST or None)
if request.method == 'POST':
if form1.is_valid():
form1.save()
return render(request, 'inputform.html', {'form1': form1})
Комментарии:
1. Я отредактировал views.py с правильным отступом. Но он все еще не обрабатывает запрос post. Данные не передаются в базу данных. Я новичок в django.
2. @ChiragGulati не могли бы вы, пожалуйста, попробовать с обновленным кодом, пожалуйста (пожалуйста, не изменяйте код)? Если вы столкнулись с какой-либо ошибкой, пожалуйста, добавьте ее в вопрос. также, пожалуйста, добавьте код формы, если этот код с ответом не работает. Спасибо
3. @c.grey Я отредактировал свой вопрос с помощью моего forms.py в нем.
4. @ChiragGulati работает ли код, приведенный с ответом? 🙂 Если нет, с какой ошибкой вы столкнулись?
5. @ruddra да, код запущен, но он по-прежнему не сохраняет никаких данных в базе данных.