我试图在Django中使用表单中的特定数据列表。我正在使用ModelChoiceField从模型中检索需要以表格形式显示的数据(以使用户从scolldown菜单中进行选择)。 我的查询很复杂,因为需要两个基于视图
传递的变量的过滤器我已尝试使用会话,但根据我的知识,无法以表格的形式导入会话。
def __init__(self, pass_variables, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['initiative'] = forms.ModelChoiceField(queryset=raid_User_Initiative.objects.filter(company=pass_variables[1], username=pass_variables[0]).values_list('initiative', flat=True))
pass_variables = ((str(request.user), companyname))
f = Issue_form(pass_variables)
如果我不传递变量,则该过程有效。问题在于上面的代码,因为该表单未提供任何错误,但未通过 if f.is_valid():
谢谢
答案 0 :(得分:0)
我解决了自己!无论如何,如果对解决方案感兴趣的人正在使用会话:
在将查询集声明为:
initiative = forms.ModelChoiceField(queryset=raid_User_Initiative.objects.all(), to_field_name="initiative")
使用 to_field_name =“ initiative”
将查询集修改为:
def __init__(self, user, company, *args, **kwargs):
super(raid_Issue_form, self).__init__(*args, **kwargs)
self.fields['initiative'].queryset = raid_User_Initiative.objects.filter(company=company, username=user).values_list('initiative', flat=True)
f = raid_Issue_form(request.user, request.session['company'])
希望获得帮助!