因此,在我的第一个网页上,我有一个提交按钮,其中包含在value标签中需要的一系列信息。
<button type="submit" name="editEntry" value="[{{ entry.id }}, {{ entry.first_name }}, {{ entry.last_name }}, {{ entry.country }}, {{ entry.city }}, {{ entry.salary }}]">Edit</button>
在view.py中,我为value标记中提取的每个信息设置了变量。
def post(self, request):
form = AddUser(request.POST or None)
context = { 'form': form }
if 'editEntry' in request.POST:
values = request.POST['editEntry']
id_num = values[0]
first_name = values[1]
last_name = values[2]
country = values[3]
city = values[4]
salary = values[5]
return redirect('/edit')
现在在我的编辑页面中,我有一些输入标签
<input type="hidden" name="id_num" value="">
<input type="text" name="first_name" placeholder="First Name" value="">
<input type="text" name="last_name" placeholder="Last Name" value="">
<input type="text" name="city" placeholder="City" value="">
<input type="text" name="country" placeholder="Country" value="">
<input type="text" name="salary" placeholder="salary" value="">
如何获取从第一个网页获得的变量并将其作为值添加到编辑页面的输入标签中?
答案 0 :(得分:0)
自django 1.2发布以来,您无法通过重定向传递上下文。您可以执行 hack 。我不是这个的忠实粉丝。
def帖子(自己,要求): 形式= AddUser(request.POST或无)
context = { 'form': form }
if 'editEntry' in request.POST:
values = request.POST['editEntry']
id_num = values[0]
first_name = values[1]
last_name = values[2]
country = values[3]
city = values[4]
salary = values[5]
redirect_url = '/edit?'+'value='+values+'&id_num='+id_num+'&first_name='+first_name+'&last_name='+last_name+'&country='+country+'&city='+city+'&salary='+salary
return redirect(redirect_url)
这是主意。请检查网址格式正确。在网址中添加这些内容后,您可以轻松地按以下步骤提取它们:
function get_url_params(param){
main_dict={}
arr=window.location.href.split('?')[1].split('&')
for(var i=0; i<arr.length;i++){
main_dict[arr[i].split('=')[0]] = arr[i].split('=')[1];
}
return main_dict[param])
}
定义此功能后,您可以执行以下操作:
var first_name = get_url_params('first_name');
document.getElementsByName('first_name')[0].value = first_name
对其余参数执行此操作。
答案 1 :(得分:0)
如果您只想将某些值从一页传递到另一页,则request.sessions
将是最佳解决方案。
def post(self, request):
form = AddUser(request.POST or None)
request.session['form_detail'] = {} # create session
context = { 'form': form }
if 'editEntry' in request.POST:
values = request.POST['editEntry']
request.session['form_detail']['id_num'] = values[0]
request.session['form_detail']['first_name'] = values[1]
request.session['form_detail']['last_name'] = values[2]
request.session['form_detail']['country'] = values[3]
request.session['form_detail']['city'] = values[4]
request.session['form_detail']['salary'] = values[5]
return redirect('/edit')
然后在模板中,您可以调用存储在会话中的这些值
{% with session=request.session.form_detail %}
<input type="hidden" name="id_num" value="{{ session.id_num }}">
<input type="text" name="first_name" placeholder="First Name" value="{{ session.first_name }}">
<input type="text" name="last_name" placeholder="Last Name" value="{{ session.last_name }}">
<input type="text" name="city" placeholder="City" value="{{ session.city }}">
<input type="text" name="country" placeholder="Country" value="{{ session.country }}">
<input type="text" name="salary" placeholder="salary" value="{{ session.salary }}">
{% endwith %}