将值传递到Django表单

2024-10-03 06:23:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在google上搜索了一下,试图弄明白它是如何工作的,但我仍然没有完全掌握这一点。我要做的是将一个值传递到表单中,然后用于查询。我有一个名为menu_term的会话变量,它决定表单中的选项。在

从视图.py在

def manage_groups(request):
    form = CourseGroupForm(request,current_term=request.session.get('menu_term'))
return render_to_response("accounts/group_management.html", {'form':form}, context_instance=RequestContext(request))   

从表单.py在

^{pr2}$

我得到的错误是:

 __init__() got multiple values for keyword argument 'current_term'

对于遇到这种情况的其他人来说,定义接受外部传入值的窗体的正确方法是什么?在

谢谢, 很好的一天 乔丹


Tags: pyform视图表单managerequestsessiondef
2条回答

在调用表单super__init__之前,弹出实例化表单的kwarg很重要

class CourseGroupForm(ModelForm):
 def __init__(self, current_term, *args, **kwargs):
    current_term = kwargs.pop('current_term')
    super(CourseGroupForm, self).__init__(*args, **kwargs)

以上假设current_term始终存在。在

正如@vishen指出的,检查你的参数,你用request作为current_term的值初始化表单

发生错误的原因是在模型形式中init去公差

 class CourseGroupForm(ModelForm):
     def __init__(self, current_term, *args, **kwargs)

current_term是表单希望找到的第一个参数,但是由于您先传递request对象,然后再传递current_term,因此有效地传递了以下参数

^{pr2}$

因此,关键字参数“current_term”的多个值错误消息。在

相关问题 更多 >