我有一個生成QR碼Django的形式,形式不顯示在瀏覽器提交不過之後,它不會使qr_results.htmlDjango的形式沒有選擇render_to_response
views.py
from django.template.loader import get_template
from django.template import Template, Context
from django.http import HttpResponse, Http404
from django.shortcuts import render_to_response
from django.core.mail import send_mail
from django.http import HttpResponseRedirect
from cacoos_com.qr.qr_form import QrForm
from pygooglechart import QRChart
def qr(request):
if request.method == 'POST':
qform = QrForm(request.POST)
if qform.is_valid():
qc = qform.cleaned_data
chart = QRChart(125,125)
chart.add_data(qc['url'])
chart.set_ec('H', 0)
chart.download('/opt/cacoos_com/media/qr-hello.png')
render_to_response('qr_results.html', {'url': qc['url']})
else:
qform = QrForm(initial={'url': 'type your url here'})
return render_to_response('qr_form.html', {'form': qform})
qr_form.py
from django import forms
class QrForm(forms.Form):
url = forms.CharField(max_length=100)
我還沒有張貼在這裏的模板,但我認爲他們還好嗎?任何想法,爲什麼這可能發生....
:更新
這些都是使用兩個模板..
qr_form.py
{% extends "base.html" %}
<html>
<head>
<title>QR generator</title>
</head>
<body>
{% block content %}
<h3>QR encoder</h3>
{% if form.errors %}
<p style="color: red;">
Please Correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}
<form action="" method="POST">
<div class="field">
{{ form.url.errors }}
<label for="id_url">Url:</label>
{{ form.url }}
</div>
<input type="submit" value="Submit">
</form>
{% endblock %}
</body>
</html>
qr_results.html
{% extends "base.html" %}
{% block content %}
<h3>QR code</h3>
<p> This is the qr code for your url {{ url }} </p>
<p><img src="{{ MEDIA_URL}}/media/qr-hello.png" /"></p>
{% endblock %}
,這大概是因爲模板的問題。你可以把模板代碼嗎? – 2012-01-16 00:29:13
張貼了 – krisdigitx 2012-01-16 00:32:25
以上的模板順便說一下,你的模板缺少csrf標記,所以我認爲你的應用程序對csrf攻擊是不利的。你使用的是什麼版本的Django? – 2012-01-16 00:36:25