【发布时间】:2014-06-28 05:36:51
【问题描述】:
我在 Google App Engine 上使用 Django 框架。 我在同一个视图上有多个表单,以提交到不同的 URL。 问题是在我提交表单后:即使调用的方法更新了数据存储区和一些数据,上一页(表单所在的位置)也不会刷新,显示更新的数据。
我可以使用 jQuery 或一些 javascrip 框架来解决这个问题,附加服务器返回的动态内容,但是,如何避免呢? 建议? 我是不是哪里错了?
“secure.html”模板的一部分
<form action="/addMatch" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
Matches:
<br />
{% for m in matches%}
{{m.description}} ---> {{m.reward}}
{% endfor%}
“/addMatch”网址视图:
def addMatch(request):
form = MatchForm(request.POST)
if form.is_valid():
user = User.all().filter('facebookId =', int(request.session["pbusr"]))
m = Match(user=user.get(),description =form.cleaned_data["description"],reward=form.cleaned_data["reward"])
m.save()
return HttpResponseRedirect("/secure/")
else:
logging.info("Not valid")
return HttpResponseRedirect("/secure")
看起来不起作用的视图方法:
@auth_check_is_admin
def secure(request):
model={}
user = User.all().filter('facebookId =', int(request.session["pbusr"]))
u = user.get()
if (u.facebookFanPageId is not None and not u.facebookFanPageId == ""):
model["fanPageName"] = u.facebookFanPageName
model["form"] = MatchForm()
model["matches"] = u.matches
else:
....
return render(request,"secure.html",model)
弗朗西斯科
【问题讨论】:
-
请包含提交表单的模板,如果它是通过 ajax 发布的,请包含该 javascript,以及处理请求的视图。
-
查看关于一致性的文章:googlecloudplatform.blogspot.nl/2013/12/…
-
如果刷新页面,它会更新吗?如果是这样,我怀疑这是一个一致性问题。您可能需要使用一些 ajax 来显示更新。或者,某种形式的“感谢您发帖。点击此处查看更新。”
标签: django google-app-engine django-forms