【发布时间】:2018-06-20 18:03:48
【问题描述】:
我正在尝试创建一个可以在具有不同重定向 url 的多个应用程序中使用的视图:
父函数:
def create_order(request, redirect_url):
data = dict()
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
form.save()
return redirect(redirect_url)
else:
form = OrderForm()
data['form'] = form
return render(request, 'core/order_document.html', data)
子函数:
@login_required()
def admin_order_document(request):
redirect_url = 'administrator:order_waiting_list'
return create_order(request, redirect_url)
当我尝试调用 admin_order_document 函数时,我得到:
Traceback (most recent call last):
File "/home/project/venv/lib/python3.5/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/home/project/venv/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/project/venv/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: create_order() missing 1 required positional argument: 'redirect_url'
如果我从两个函数中删除redirect_url 并手动将'administrator:order_waiting_list' 添加到redirect() 它可以工作,但我需要重定向到多个url。那么,为什么会出现这个错误?
【问题讨论】:
-
你用的是什么 Django 版本?
-
Django 版本 1.11.7
-
哪个 URL 给出了该错误消息,该 URL 的 URL 模式是什么?
-
url(r'^orders/create/', views.create_order, name='create_order'),create_order 函数位于核心中,我在管理员视图中导入它
标签: python django python-3.x