Имею форму для админки:
class PermissionModelForm(forms.ModelForm): queryset = MyGroup.objects.all() for group_object in queryset: exec('group_{0} = forms.BooleanField()'.format(group_object.group_name)) class Meta: model = MyPermission fields = ('permission_name', 'permission_description')
В ней задаются поля согласно имеющимся группам. Проблема в том, что они создаются во время запуска сервера. Как перезагрузить форму, скажем, после добавления/удаления/редактирования группы? Форма группы:
class GroupModelForm(forms.ModelForm): class Meta: model = MyGroup fields = ('group_name', 'group_tag') def save(self, commit=True): group = super(GroupnModelForm, self).save(commit=False) if commit: group.save() return group
Анонимный пользователь Изменен статус публикации
Правильнее в данном случае создавать поля динамически в методе __init__
:
class PermissionModelForm(forms.Form): def __init__(self, request, *args, **kwargs): super().__init__(*args, **kwargs) for group_object in MyGroup.objects.all(): self.fields['group_{}'.format(group_object.group_name))] = forms.BooleanField()