Django: сделать форму поля доступной для чтения (не работает, поскольку я использую помощник django-crispy)

Я пытаюсь настроить поля формы с помощью django-crispy. Но я могу сделать свои поля "доступными для чтения".

До использования django-crispy FormHelper я использовал атрибут поля формы disabled и он хорошо работает.

Теперь я хочу использовать помощник django-cripy для горизонтального отображения кнопок опций, но атрибут disabled не работает.

Я пробовал использовать атрибут whidget readonly, но ни то, ни другое не работает.

Я также попробовал решение https://github.com/django-crispy-forms/django-crispy-forms/issues/47, но получил ошибку Could not parse the remainder: ' form.pat readonly True' from 'crispy_field form.pat readonly True'

Когда я отображаю шаблон, поле eli_dat корректно отключается (readonly), но не eli_oui_ebo радиокнопки...

forms.py

class EligibiliteForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        self.IDE = kwargs.pop("ide", None)
        self.PATIENT = kwargs.pop("patient", None)
        self.USER = kwargs.pop("user", None)
        super(EligibiliteForm,self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-lg-7'
        self.helper.layout = Layout(
            'pat',
            Field(
                AppendedText(
                   'eli_dat',                    
                    mark_safe('<span data-feather="calendar"></span>'),
                )
            ),       
            InlineRadios('eli_oui_ebo'),  
        )

        if self.PATIENT == None:
            FORM_LOCK = Eligibilite.objects.get(ide = self.IDE).ver
        else:
            FORM_LOCK = False # Form can not be locked at creation
        **DISABLED = False**
        INITIAL = None

        if self.PATIENT != None:
            print("form - create")
            FORM_LOCK = False
            **DISABLED = False**
            INITIAL = Patient.objects.get(ide=self.PATIENT.ide)

        elif self.PATIENT == None and not FORM_LOCK:
            print("form - update not locked")
            **DISABLED = False**
            INITIAL = None

        elif self.PATIENT == None and FORM_LOCK:
            **DISABLED = True**
            INITIAL = None
       
        self.fields["pat"] = forms.ModelChoiceField(queryset = Patient.objects.all(),widget=forms.HiddenInput(), label = "Patient", initial=INITIAL)
        # insert forms fields
        self.fields['eli_dat'] = forms.DateField(label = 'Date (de remplissage)',widget=forms.TextInput(attrs={'autocomplete': 'off'}),required=False, disabled=DISABLED)
        self.fields['eli_oui_ebo'] = forms.TypedChoiceField(label = 'A eu, dans les 72h, un contact avec un malade Ebola confirmé par RT-PCR',widget=forms.RadioSelect(attrs={'readonly': True}),required=False,choices=[i for i in Thesaurus.options_list(1,'fr') if i != (None,'')], disabled=DISABLED)
      

template.html

<form id="id-form" method="post">
   {% csrf_token %}
   {% crispy form %}
</form>
Вернуться на верх