나중에 사용자 제공 변수를 사용하는 좋은 방법을 찾으려고합니다. 나는이 최소한의 예에 벗었했습니다Django - 다른 함수에서 입력 변수 사용
models.py
class Input(models.Model):
x = models.IntegerField()
class InputForm(ModelForm):
class Meta:
model = Input
views.py
def input(request):
if request.method == 'POST':
form = InputForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/results')
else:
form = InputForm()
return render_to_response('input.html',
{'form':form}, context_instance=RequestContext(request))
def result(request):
# Here I would like to get the input from the form, e.g.
#
# x = request.GET["x"]
#
# or
#
# inp = InputForm(request.GET)
# x = inp.x
#
# Something like this, so that I can be able to write the line below:
return HttpResponse("x = %f" % x)
이 작업을 수행하기 위해 권장되는 방법은 무엇입니까?
는편집 :
주요 문제는
def results(request):
return HttpResponse(request.GET)
만 빈 페이지를 도시 즉 request.GET의 딕셔너리는 결과 함수 비어 있음을 보인다. 그리고 당연히 request.GET [ 'x']는 "Key 'x'가 QueryDict : {}"에없는 예외를 제공합니다.
<form method="post" action="">{% csrf_token %}
{{ form }}
<input type="submit" value="Compute" />
</form>
적으로는, 내가이 FallenAngel의 원래의 대답처럼, InputForm 다시 request.GET을 보낼 수 있도록하고 싶습니다,하지만 request.GET 비어 있기 때문에 작동하지 않습니다 : 내 input.html은 다음과 같습니다.
'
나는 request.POST를 사용해 보았습니다.하지만 여전히 같은 문제가 있습니다. x는 키가 아닙니다. 그리고 디버그 페이지에 Request Method : GET이 표시됩니다. input.html 파일은 이상적으로 어떻게 보이게해야합니까? – user2064178
html과 테스트에서'{% csrf_token %} '을 (를) 삭제할 수 있습니다. 거기에 잘못된 설정이있을 수 있습니다. 또한 URL 구성을 확인하십시오. ther etoo에 모든 것이 올바른지 확인하십시오. – FallenAngel