2017-05-28 21 views
0

私はスタック上のソリューションを探していたが、何も私を助けなかった。ほとんどの解決策はインデントに関連していましたが、私は私がそうではないと思います。私は誰かがこれで私を助けることができるときにそれを感謝します!ここでDjangoは「HttpResponseオブジェクトを返さなかったので、代わりにNoneを返す」と述べています。

は私が持っているものです。

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の初心者です。これは私に何かを学ぶのに役立ちます。

+1

を確認してください。デフォルトの 'None'が返されます。 –

+0

正しいことを記入してください。この回答が正しいと分かっている場合は:) – Sagar

答えて

4

これは、リクエストがPOSTでないときに何が起こるかである、get要求では、あなたが何かを返していなかった、今

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}) 
0

リクエストの動詞がPOSTではないケースを想定していません。この場合、関数get_questionは、明示的returnNone。これは、elseと一緒に常にifを使用することが重要であり、必要なのはMLHaskellなどの機能言語であり、私の経験ではプログラムのデータフローを理解するのに役立ちます。

関連する問題