python - 我的 Django 重定向功能不起作用
问题描述
我正在开发一个 web 应用程序,但我似乎无法执行我在重定向方法中使用的视图。有人可以帮我吗?
这是我的意见.py
@login_required
def view_task_description(request):
if request.method == 'POST':
task_description = GetTaskDescription(data=request.POST, user=request.user)
if task_description.is_valid():
obj = GetTaskDescription.get_task_description(task_description)
return redirect('get_task_description', pk=obj[0].pk)
# return render(request, 'todoapp/task_desc.html', context={'description': obj[0].description})
return render(request, 'todoapp/select_task_description.html', context={'view_tasks': GetTaskDescription(user=request.user)})
@login_required
def get_task_description(request, pk):
# print "Reached get task descrition method"
obj = get_object_or_404(Task, pk=pk)
return render(request, 'todoapp/task_desc.html', context={'description': obj.description})
这是我的网址:
url(r'^view_task_description', views.view_task_description, name='view_task_description'),
url(r'^view_task_description/(?P<pk>[0-9]+)/$', views.get_task_description, name="get_task_description"),
这是我的forms.py:
class GetTaskDescription(forms.Form):
get_tasks = forms.ModelMultipleChoiceField(
queryset=Task.objects.none(),
widget=forms.CheckboxSelectMultiple,
required=True
)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
super(GetTaskDescription, self).__init__(*args, **kwargs)
self.fields['get_tasks'].queryset = self.user.task_set.all()
def get_task_description(self):
tasks = self.cleaned_data['get_tasks']
return tasks
解决方案
You need to add a $
to the first regex, otherwise it will match /view_task_description/5/
as well as /view_task_description
.
url(r'^view_task_description/$', views.view_task_description, name='view_task_description'),
url(r'^view_task_description/(?P<pk>[0-9]+)/$', views.get_task_description, name="get_task_description"),
I've added a trailing slash as well, to match the usual Django style and your other URL pattern.
推荐阅读
- c - 如何在 WM_PAINT 中绘制一个 Windows 按钮?
- python - ValueError:检查目标时出错:预期dense_8的形状为(10,),但数组的形状为(95,)
- jasmine - 失败:脚本超时:20 秒内未收到结果
- amazon-web-services - AWS CloudWatch:如何在 cloudwatch 规则中将媒体转换日志传递给 lamda 函数?
- javascript - 在 Laravel Mix 中转译 Material JS 的问题
- angular - 单击另一个 div 时更改类名
- javascript - 数字的正则表达式只允许空格和 1 个逗号或点
- ansible - Ansible 不覆盖默认变量
- python - 尝试在 PyQT5 中查看数据时 Python 崩溃
- assembly - 为什么在这个简单的程序中,与 C++ 相比,gfortran 会产生如此大的堆栈大小?