gpt4 book ai didi

python - 将值传递给 Django 表单

转载 作者:太空宇宙 更新时间:2023-11-04 07:38:40 25 4
gpt4 key购买 nike

我在谷歌上搜索过,试图找出并理解它是如何工作的,但我仍然没有完全理解这一点。我想要做的是将一个值传递到一个表单中,然后用于查询。我有一个名为 menu_term 的 session 变量,它确定表单中的选项。

来自 views.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))

来自 forms.py

 class CourseGroupForm(ModelForm):
def __init__(self, current_term, *args, **kwargs):
super(CourseGroupForm, self).__init__(*args, **kwargs)
courseslist = Course.objects.filter(term=current_term, num_in=settings.LAB_COURSES).order_by('description').distinct();
print(courseslist)
self.fields['courses'].queryset = forms.ChoiceField(label='Select Course', choices=courseslist)

class Meta:
model = CourseGroup
fields = ['name','courses'];

我得到的错误是:

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

为了遇到此问题的其他人的利益,定义从外部传入的值的表单的正确方法是什么?

谢谢,再会兆焦耳

最佳答案

在调用表单 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 的值初始化您的表单

关于python - 将值传递给 Django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com