【问题标题】:Django: redirect user two pages backDjango:将用户重定向两个页面
【发布时间】:2018-01-05 07:05:40
【问题描述】:

我有一个来自我的数据库(名为“plp's”)的多个对象的列表,它们排列在一个表中。在每个“plp”元素旁边,我都有一个“编辑”按钮来修改该特定条目。

接下来,我将用户重定向到一个新的 url,在那里我传递该“plp”的 id,并显示表单以编辑它,并带有一个“保存”按钮。

按下“保存”后,即 request.POST,我想将用户重定向回第一个 url,所有“plp”对象的列表都在一个列表中。这意味着他第一次按下“编辑”的网站。

我可以以某种方式保存单击“编辑”的 url,并将其传递给我的 views.py 吗?

谢谢

listdns.html:
<td>
<a href='{% url "plpuredi" plp_id=pos.id %}' class="btn btn-primary btn-sm">Uredi</a>
</td>

urls.py:

rl(r'^(?P<plp_id>\d+)/uredi$', plp_list_uredi,name="plpuredi")

views.py:

def plp_list_uredi(request, plp_id=None):
moj_plp=PLPPostavka.objects.get(id=plp_id)
form=PLPPostavkaForm(request.POST or None,request=request,dns=moj_plp.dns, instance=moj_plp)
context ={
    'plp':moj_plp,
    'form':form,
}
if request.POST:
    if form.is_valid():
        plp = form.save()
        return redirect(request.path)
return render(request, "plp_pos/uredi.html",context)

uredi.html

<form action="" method="POST">
{% csrf_token %}
<div class="box">
<div class="box-header">
    <h4 class="box-title">
       Urejanje PLP Postavke
    </h4>
</div>
<div class="box-body">
{% for field in form %}
<div class="form-group">
<label for="{{ field.id_for_label }}" class="col-md-2 control-label detail">{{ field.label }}</label>
<div class="col-md-10">
{% if field|field_type == "datefield" %}
  {% render_field field class+="form-control dateinput" %}
{% else %}
  {% render_field field class+="form-control" %}
{% endif %}       
</div>
</div>
{% endfor %}
</div>
<div class="box-footer">
    <div class="box-tools pull-right">
        <input type="submit" value="Shrani" class="btn btn-primary" />
    </div>
</div>

【问题讨论】:

  • 提供你的models.py、urls.py和views.py
  • 请在帖子中包含您的代码
  • 我认为您只需要更改行:return redirect(request.path) 并使用 httpredirect 到要重定向到的 url
  • 我做重定向(request.path)只是为了在调用保存时不会出错。
  • 我用这个解决方案解决了这个问题:Django Redirect to previous view

标签: python html django


【解决方案1】:

你不是只有一页来编辑所有元素吗?然后你也许可以对链接进行硬编码,例如

return HttpResponseRedirect(my_edit_url)

如果这不起作用并且您需要返回 2 页,请查看此帖子: How to redirect to previous page in Django after POST request

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2011-03-19
    • 2011-12-25
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多