我正在尝试使用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模式。
这应该可以解决您的问题:
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模式。