python - 带参数的 django.shortcuts.redirect

标签 python django

我正在尝试重定向到带有参数的 URL。 部分views.py

def membership(request):
    errors = []
    members = Member.objects.all()
    ...
        if request.POST.get('subject', '') == "member_details":
            member = members.filter(id = request.POST.get('member', ''))
            return redirect("/membership/details/", m = member)
    ...

    return render(request, "membership.html", {"errors": errors, 'members': members})

我需要重定向到“membership/details/”,但使用“member”作为参数或至少使用成员 ID。

这是我的 url.py 的一部分:

url(r'^admin/', include(admin.site.urls)),
url(r'^input/book/', 'library_app.views.input_book'),
url(r'^membership/$', 'library_app.views.membership'),
url(r'^membership/details/', 'library_app.views.member_details'),
url(r'^$', 'library_app.views.main'),

以及我的views.py的“member_details”部分:

def member_details(request, m="doesn't work"):
    error = []

    if request.method == "POST":
        pass

    return render(request, "member_details.html", {'m': m})

感谢您的帮助!

最佳答案

如果您想在 url 中包含该成员,请添加 named group到你的网址模式。例如,您可以包含以下内容的成员(member) ID:

url(r'^membership/details/(?P<member_id>\d+)/', 'library_app.views.member_details', name='member_details'),

然后,您的 View 将包含 member_id 作为关键字参数。

from django.shortcuts import get_object_or_404

def member_details(request, member_id):
    member = get_object_or_404(id=member_id)
    # you might want to add checks to make sure 
    # that the logged in user is allowed to see this members details!
    ...

然后您可以使用 redirect带有硬编码的网址:

return redirect("/membership/details/%s/ % member.pk")

或者,最好包含 View 名称和 member_id 作为参数。

return redirect("member_details", member_id=member.id)

关于python - 带参数的 django.shortcuts.redirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779424/

相关文章:

python - 从外部网站获取元描述

django - 将模板变量呈现为 HTML

python - 将Matlab代码转换为Python时的"data type not understood"

python - 将python字符串转换成json格式

python - Bokeh 中的多行悬停

django - 如何在 Django View 中获取选择选项值

python - 在 matplotlib 中,如何绘制多个数据集的条形图以将最小的条放在前面?

python - 字段计算器和 Python 3 字符串重分类警告

python - 如何修改 GET 的反向 url?

python - django-import-export 无法正常工作