动态覆盖django formset初始数据
overriding django formset initial data dynamically
好的,我是 django 的新手
所以我遇到了一种情况,我希望表单集具有动态初始数据
所以基本上这就是我要找的东西。
表单集中的每个表单都有不同的 UserID
以及一组他们可以根据初始数据选择的组权限
这是我的表格
class assignGroupPermissionToUser(forms.ModelForm):
UserID = forms.ModelChoiceField(queryset=None)
Groups = forms.ModelMultipleCHoiceField(queryset=None, widget=FilteredSelectMultiple("Groups")
class Meta:
model=User
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
Userid = kwargs.pop("UserID")
self.fields['UserID'].queryset =User.objects.get(UserID=Userid)
Permissions = kwargs.pop("Groups")
listofPermission = None
for each perm in permission:
listofPermission |= Permissions.objects.filter(GroupID=perm)
self.fields['Groups'].queryset = listofPermission
我想要传递的数据被内置到一个列表中,就像这样
它被称为
完整列表
> completeList =[['13452',{'group1':'Admin','group2':'FrontDesk'}],['3532','group1':'Supervisors','group2':'ReadOnly;}]]
其中每个嵌套循环中的第一个值是 UserID,字典是他们可以从中选择的组。
覆盖 View.py
中的方法
....
form = assignGroupPermissionToUser()
assignment = formset_factory(form,extra=0)
formset = [ assignment.__init__(completeList[x][0],completeList[x][1]) for x in range(len(completeList))]
然后我得到一个错误,str 对象没有 'is_bound' 字段行 58 of formset.py
我试着让这些数据显示在每个表单上并基于用户
它会完全不同,但我尝试覆盖它的所有内容都无法获得初始形式,所以我被困在这里
请注意,modelform 中的 Group 属性有一个小部件,该小部件在管理部分中用于从多个选择中进行过滤。
设置
姜戈 = 1.8
python3.5
我删除了所有这些代码并像这样做了两个循环
formset = assignments(initial=[{'UserID': listofUserID[x] } for x in range(len(completeList))])
#then
for form in formset:
form.fields['permissions'].queryset = querysetiwant
好的,我是 django 的新手 所以我遇到了一种情况,我希望表单集具有动态初始数据
所以基本上这就是我要找的东西。 表单集中的每个表单都有不同的 UserID 以及一组他们可以根据初始数据选择的组权限
这是我的表格
class assignGroupPermissionToUser(forms.ModelForm):
UserID = forms.ModelChoiceField(queryset=None)
Groups = forms.ModelMultipleCHoiceField(queryset=None, widget=FilteredSelectMultiple("Groups")
class Meta:
model=User
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
Userid = kwargs.pop("UserID")
self.fields['UserID'].queryset =User.objects.get(UserID=Userid)
Permissions = kwargs.pop("Groups")
listofPermission = None
for each perm in permission:
listofPermission |= Permissions.objects.filter(GroupID=perm)
self.fields['Groups'].queryset = listofPermission
我想要传递的数据被内置到一个列表中,就像这样
它被称为 完整列表
> completeList =[['13452',{'group1':'Admin','group2':'FrontDesk'}],['3532','group1':'Supervisors','group2':'ReadOnly;}]]
其中每个嵌套循环中的第一个值是 UserID,字典是他们可以从中选择的组。
覆盖 View.py
中的方法....
form = assignGroupPermissionToUser()
assignment = formset_factory(form,extra=0)
formset = [ assignment.__init__(completeList[x][0],completeList[x][1]) for x in range(len(completeList))]
然后我得到一个错误,str 对象没有 'is_bound' 字段行 58 of formset.py
我试着让这些数据显示在每个表单上并基于用户 它会完全不同,但我尝试覆盖它的所有内容都无法获得初始形式,所以我被困在这里
请注意,modelform 中的 Group 属性有一个小部件,该小部件在管理部分中用于从多个选择中进行过滤。
设置 姜戈 = 1.8 python3.5
我删除了所有这些代码并像这样做了两个循环
formset = assignments(initial=[{'UserID': listofUserID[x] } for x in range(len(completeList))])
#then
for form in formset:
form.fields['permissions'].queryset = querysetiwant