Menu_Opciones() 缺少 2 个必需的位置参数:'Pregunta' 和 'Opciones'

Menu_Opciones() missing 2 required positional arguments: 'Pregunta' and 'Opciones'

我有一个问题,它会发展一个脚本:"script.py" 和一个 django 项目中 "views.py" 的视图。 目标是在页面中显示一个问题:"Pregunta" 和一个选项列表:"Opciones" 在脚本的一部分中,我需要以这种方式调用视图的函数 "Menu_Opciones":

ESI_App.views.Menu_Opciones(request, Pregunta, Opciones)

在views.py中我有这样定义的函数:

def Menu_Opciones(request, Pregunta, Opciones):
    for i in range(len(Opciones)):
    ModelOpciones.objects.create(opciones=Opciones[i])
    form = OpcionesForm(request.POST or None, field1_qs = ModelOpciones.objects.all())
    context = {
    'pregunta': Pregunta,
    'form': form,
    }
    if form.is_valid():
        opcion = form.cleaned_data['Campo_Opciones']
    return render(request, "Menu_op.html", context)

这是回溯:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/Menu_Opciones/

Django Version: 1.9.7
Python Version: 3.4.3
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'ESI_App']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "C:\Users\Miguel\Desktop\VenvProyecto\lib\site-packages\django\core\handlers\base.py" in get_response
  149.                     response = self.process_exception_by_middleware(e, request)

File "C:\Users\Miguel\Desktop\VenvProyecto\lib\site-packages\django\core\handlers\base.py" in get_response
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

Exception Type: TypeError at /Menu_Opciones/
Exception Value: Menu_Opciones() missing 2 required positional arguments: 'Pregunta' and 'Opciones'

更多信息:我换了电脑后出现这个错误,但是我创建了一个新的项目和应用程序,复制了代码,修改了所有路径,项目文件和文件夹名称,应用程序名称,设置...仔细。

如您所见,我使用这 3 个参数调用该函数,但我无法想象为什么会出现该错误。请帮帮我 提前致谢。

我修好了!首先,我尝试将参数作为关键字传递,但得到了同样的错误,所以我尝试简单地在视图 "Pregunta" 和 "Opciones" 中定义为全局变量:

Preg = ''
Opcs = []

我在 "script.py" 中导入了它们并赋予了它们正确的值:

ESI_App.views.Preg = Pregunta
ESI_App.views.Opcs = Opciones

然后,我调用视图并使用那些全局变量:) 我知道这不是优雅地滥用全局变量,但它避免了错误并解决了问题。 如果您找到另一种优雅的解决方案或方法来解决该错误,我将不胜感激并将他的解决方案标记为已接受。