django - Initial=True 不适用于 django 动态形式

标签 django forms checkbox customization

我想要预先选中的复选框,我通过了“initial=True”,但它不起作用。下面是代码。

class permForm(forms.Form):

    id = forms.CharField(widget=forms.TextInput(attrs={'id':'user_id'}),required=False)

    def __init__(self, data, **kwargs):
        super(permForm, self).__init__(data, **kwargs)
        # offset_arr=data.split('/')
        # menu_id=offset_arr[1]
        # user_id=offset_arr[2]
        # flag=   offset_arr[3]
        # if user.has_perm(permission.codename, task):
        usr  = User.objects.get(id=1)
        task = Site.objects.get_current()

        for item in list(AdminMenu.objects.filter(parent_id=0)):
            permission=Permission.objects.get(id=item.permission_id);
            if usr.has_perm(permission.codename, task):
                checked=False
            else:
                checked=True
            self.fields['menu_%d' % item.id] = forms.BooleanField(initial=True,label=item.title,required=False)
            for childitem in list(AdminMenu.objects.filter(parent_id=item.id)):
                cpermission=Permission.objects.get(id=childitem.permission_id);
                if usr.has_perm(cpermission.codename, task):
                    childchecked=True
                else:
                    childchecked=False

                self.fields['menu_%s' %childitem.id] = forms.BooleanField(initial=True,label=childitem.title+'%s'%(data),required=False)

但是它对于静态表单工作得很好。请参阅下面的代码

类 MyForm(forms.Form):
选项= forms.BooleanField(必需= False,初始= True)

是否有任何技巧可以为动态加载的表单元素传递初始值?

最佳答案

试试这个:

而不是

self.fields['menu_%d' % item.id] = forms.BooleanField(initial=True,label=item.title,required=False)

构造字段时删除initial=True参数并填充其初始值 下一步的值如下:

self.fields['menu_%d' % item.id] = forms.BooleanField(label=item.title,required=False)
self.fields['menu_%d' % item.id].initial = True

关于django - Initial=True 不适用于 django 动态形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380231/

相关文章:

javascript - <form>打开新窗口后如何刷新主页?

forms - Symfony2 表单实体更新

jquery - 使用 jQuery 在表单中添加额外的 html 选择输入字段

javascript - 如何在javascript中检查复选框

javascript - 用图像按钮替换复选框

python - 仅对员工启用 Django DEBUG = True?

Django - ChoiceFieldcleaned_data 获取字符串而不是整数

javascript - 未选中复选框并显示 div

python - 如何将编码的unicode转换为可读的unicode

python - 无法解析余数 : '%' from '%' Django