【问题标题】:How to redirect to another page that contains ID in django如何在django中重定向到另一个包含ID的页面
【发布时间】:2020-07-12 02:22:42
【问题描述】:

我在 view.py 文件中有这个函数,我在上面传递了一个 ID 并呈现某个页面

def more_about_child(request,pk):
    child = get_object_or_404(Child_detail,pk=pk)
    academic = Academic.objects.filter(Student_name=child)  
    context={ 
        'child':child, 
        'academic':academic,
    }
    return render(request,'functionality/more/more.html',context)

而这个urls.py文件属于上面的views.py文件

from . import views
from django.urls import path

urlpatterns=[
    #more_about_child
    path('more/<int:pk>/',views.more_about_child,name='more'),
]

然后我有这个函数,我想重定向到包含上述 urls.py 文件中的 id 的页面

def add_academy(request,pk):
    child = get_object_or_404(Child_detail, pk=pk)
    academic = Academic.objects.get(Student_name=child)
    form = AcademicForm(request.POST, instance=academic)
    if form.is_valid():
        form.save()
        return redirect('more') #it fails to redirect to this url,because it contain an ID in it
    else:
        form=AcademicForm()
    context = {
        'academic':academic,
        'child':child,
        'form':form,
    }

【问题讨论】:

    标签: python django django-views django-templates django-urls


    【解决方案1】:

    为了使用 url 参数进行重定向,您可以将关键字参数传递给 redirect() 函数。在您的情况下,您可以将其称为:

    return redirect('more', pk=pk)
    

    以下是此类用法的文档示例:https://docs.djangoproject.com/en/3.0/topics/http/shortcuts/#examples(示例 #2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      相关资源
      最近更新 更多