我正在使用Django创建我的第一个站点,并且无法将初始数据加载到链接到内置Django组表的ModelForm中。
现在,用户可以转到组页面并从他们想要加入的组数组中进行选择。当他们稍后返回页面时,他们再次看到相同的选项/复选框列表,而不指示他们已经属于哪些组。
我无法弄清楚如何将初始组数据加载到表单中,例如,如果您已经是“组1”的成员,则已选中该复选框。我也想拥有它以便您可以取消选中一个框,因此当您提交表单时,您可能会离开某些组并同时加入其他组。任何帮助赞赏!我的代码如下:
class GroupForm(ModelForm):
groupOptions = forms.ModelMultipleChoiceField(queryset=Group.objects.all(), label = "Choose your groups",
widget=forms.CheckboxSelectMultiple())
class Meta:
model = Group
fields = ['groupOptions']
def groupSelect(request):
if request.method == 'POST':
form = GroupForm (request.POST)
if form.is_valid():
group = form.cleaned_data['groupOptions']
request.user.groups = group
return render (request, 'groups/groupSelect.html' , {'form':form})
else:
form = GroupForm()
return render (request, 'groups/groupSelect.html' , {'form':form})
答案 0 :(得分:0)
我花了几天时间试一试,但我自己想出了这个。只需修改上面代码中的倒数第二行。 ModelForm将所有可用组作为选项加载,下面的行会导致检查用户已属于的组。
form = GroupForm(initial = {' groupOptions&#39 ;: request.user.groups.all()})