Django-根据下拉菜单中的选择将用户重定向到页面

 mobiledu2502883527 发布于 2023-01-09 10:18

我正在尝试使用django中的下拉菜单,以允许用户从菜单中选择一个选项,然后导航至at页面。

特别。我正在将一个小型项目管理系统构建为一个学习项目(我知道我在这里还有许多其他问题-我只想先让事情起作用,然后再担心样式并删除不需要的变量)。我希望用户从下拉菜单(可以填充)中选择一个项目,然后导航到显示该项目详细信息的页面。我目前可以通过单击链接来完成此工作,但希望在用户可以选择现有项目并查看详细信息的地方进行操作

html表单应将用户从view_existing_projects视图转移到view_project视图。现在我可以找到过渡视图,但是project_id没有通过

urls.py

url(r'^view_project/(?P\d+)/$', views.view_project, name='view_project'),

html表格

    
{% csrf_token %}

views.py

def view_existing_projects(request, user_id):
    context = RequestContext(request)
    user = User.objects.get(id=user_id)
    projects = ProjectSite.objects.filter(owner__id=user.id)
    args = {}
    args.update(csrf(request))
    args['users'] = user
    args['projects'] = projects
    if request.method == 'POST':
        project_id = request.POST.get('project_id')
        args['project_id']= project_id

        return redirect('/view_project/', args,context)
    else:
        args = {}
        args.update(csrf(request))
        args['users'] = user
        args['projects'] = projects
   return render_to_response('Bapp/manage_projects.html', args,context)


def view_project(request, project_id):
    context = RequestContext(request)
    user = User.objects.get(project_sites__id=project_id)
    site = ProjectSite.objects.get(id=project_id)
    args = {}
    args.update(csrf(request))
    args['Users'] = user
    args['Project'] = site
    return render_to_response('Bapp/view_project.html', args,context)

Aamir Adnan.. 5

这应该可以解决您的问题:

from django.shortcuts import redirect
from django.core.urlresolvers import reverse

if request.method == 'POST':
    project_id = request.POST.get('project_id')
    return redirect(reverse('view_project', args=(project_id,)))

顺便说一句,我建议不要使用硬编码URL路径,而是Bapp/view_project.html使用命名的URL模式。

1 个回答
  • 这应该可以解决您的问题:

    from django.shortcuts import redirect
    from django.core.urlresolvers import reverse
    
    if request.method == 'POST':
        project_id = request.POST.get('project_id')
        return redirect(reverse('view_project', args=(project_id,)))
    

    顺便说一句,我建议不要使用硬编码URL路径,而是Bapp/view_project.html使用命名的URL模式。

    2023-01-09 10:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有