Отключить все параметры, кроме форм Django с полем выбора по умолчанию

#python #django #forms #choicefield

#python #django #формы #choicefield

Вопрос:

Итак, в основном вот что я пытаюсь сделать:

Я хотел бы иметь возможность сделать некоторые поля доступными только для чтения в зависимости от пользователя.

Пока это просто, но здесь возникает проблема, мне нужно сделать некоторые выбранные входные данные доступными только для чтения и хорошо…они плохо работают только для чтения. Дело в том, что пользователь все еще может играть с ним, даже если новое значение не отправлено. Я хочу, чтобы поле выбора было отключено, но если я это сделаю, значение не отправляется через POST, и возникает проблема с методом form valid.

Итак, после прочтения я понимаю, что единственный способ — отключить все поля, кроме того, которое выбрано по умолчанию?

Как это возможно

Вот что у меня есть до сих пор:

 def __init__(self, *args, **kwargs):
    self.user = kwargs.pop('user')
    super(TeamForm, self).__init__(*args, **kwargs)
    instance = getattr(self, 'instance', None)

    if instance and instance.pk is None:
        self.fields['division'].initial = 1

    user_role = self.user.memberaccount.get_role()

    if user_role != 'admin':
 

И вот где я хочу отключить выбор….

Большое спасибо за вашу помощь, Ара

Ответ №1:

Я вижу здесь два возможных варианта: