【发布时间】:2015-12-22 12:30:15
【问题描述】:
我需要在另一个视图中使用用户在一个视图中提交的数据。我不希望 URL 中的数据,并且无法通过调用最后创建的对象来提取数据,因为很多时候它不会是那个对象。
我的索引视图如下所示:
def index(request):
template_name = 'index.html'
if request.method == 'POST':
foo = request.POST['foo_text']
Foo.objects.get_or_create(foo=foo)
return redirect('/results/')
return render(request, template_name, {})
这个视图的模板是:
<html>
<title> Some Site </title>
<h1> Some site </h1>
<form action="/results/" method="POST" >
<input type="text" name="foo_text" id="id_foo_lookup" placeholder="Enter Your Foo">
{% csrf_token %}
</form>
处理数据结果的视图是:
def results_view(request, foo):
template_name = 'movement_results.html'
results = Results.objects.filter(foo=foo)
return render(request, template_name, {'results' : results })
如您所见,用户将在 index.html 中键入一些数据 foo,然后如果该对象在数据库中不存在,则该对象将获取或创建该对象。结果视图将根据用户之前提交的数据返回结果。如何获取 foo 数据到下一个视图?
【问题讨论】:
-
请关注django tutorial,你会为很多人节省很多时间。
-
您的代码对我来说没有多大意义。您的表单提交会将
POST的数据/results/,它指向index方法,然后您将redirect再次/result/?听起来render_view从未被访问过? -
将数据提交到索引然后重定向到结果视图会更好吗?
-
@spetras 我已经完成了本教程以及其他一些教程。如果有什么我错过的东西可以回答我的问题,我觉得将我引导到该页面而不是因为提出问题而受到指责会更有益。
标签: django