Alenorze
@Alenorze
Не люблю Индию

Django как инициализировать поля формы в зависимости от группы пользователя?

Я имею FormView, также форму к нему, как выводить пользователю только те поля, которые доступны к примеру в группе менеджеров.
def __init__(self, *args, **kwargs):
        super(CreateCommandForm, self).__init__(*args, **kwargs)

        # if you want to do it to all of them
        for field in self.fields.values():
            field.error_messages = {'required':'Это поле обязательно для заполнения'}
  • Вопрос задан
  • 404 просмотра
Решения вопроса 1
@immaculate
Программист-путешественник
Необходимо копать в таком направлении:

class UpdateView(FormView):
     def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs['user'] = self.request.user
        return kwargs

class UpdateForm(forms.Form):
    def __init__(self, *args, **kwargs):
        user = kwargs.pop('user')
        super().__init__(*args, **kwargs)
        if not user.groups.filter(name='managers').exists():
            self.fields['secret'].disabled = True
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы