Просмотр getdata.views.getview не вернул объект HttpResponse. Вместо этого он вернул None

#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 да, код запущен, но он по-прежнему не сохраняет никаких данных в базе данных.