【问题标题】:Django says "didn't return an HttpResponse object. It returned None instead."Django 说“没有返回 HttpResponse 对象。它返回了 None 。”
【发布时间】:2017-05-28 20:03:07
【问题描述】:

我一直在寻找堆栈上的解决方案,但没有一个对我有帮助。大多数解决方案都与缩进相关,但我认为我的不是。当有人可以帮助我解决这个问题时,我将不胜感激!

这是我所拥有的:

models.py

from django.db import models

class QuestionPost(models.Model):
    question = models.CharField(max_length=1000)
    tag = models.CharField(max_length=200)
    pub_date = models.DateTimeField('Date published')


class AnswerPost(models.Model):
    answer_text = models.CharField(max_length=1000)
    answer_rate = models.IntegerField()

forms.py

from django import forms

# Create your models here.

class QuestionPostForm(forms.Form):
    question = forms.CharField(label='Question text', max_length=1000)
    tag = forms.CharField(label='Tags', max_length=200)
    pub_date = forms.DateTimeField(label='Date published')


class AnswerPostForm(forms.Form):
    answer_text = forms.CharField(label='Answer Text', max_length=1000)
    answer_rate = forms.IntegerField(label='Rate')

views.py

from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from .forms import QuestionPostForm
from .models import QuestionPost
from django.template import RequestContext

# Create your views here.

def get_question(request):
    if request.method == 'POST':
        form = QuestionPostForm(request.POST)
        if form.is_valid():
            obj = QuestionPost()
            obj.question = form.cleaned_data['question']
            obj.tag = form.cleaned_data['tag']
            obj.save()
            return HttpResponseRedirect('forum/index.html',{'form':form})

        else:
            form = QuestionPostForm()
        return render_to_response(request, 'forum/index.html', {'form': form})

为什么我得到错误:没有返回 HttpResponse 对象。它返回 None 而不是?我不明白?我是 Django 的初学者,这将帮助我学习一些东西..

【问题讨论】:

  • 当请求不是 POST 时会发生这种情况;返回默认的None
  • 标记它是正确的,如果你发现这个答案是正确的:)

标签: python django


【解决方案1】:

请立即检查,在获取请求中您没有返回任何内容,

def get_question(request):
    if request.method == 'POST':
        form = QuestionPostForm(request.POST)
        if form.is_valid():
            obj = QuestionPost()
            obj.question = form.cleaned_data['question']
            obj.tag = form.cleaned_data['tag']
            obj.save()
            return HttpResponseRedirect('forum/index.html',{'form':form})

    else:
        form = QuestionPostForm()
    return render_to_response(request, 'forum/index.html', {'form': form})

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2017-01-25
    • 2018-09-14
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多