Как отключить поле из представления на Django?
Я пытаюсь отключить его, но я использую один и тот же form
для двух разных представлений, и в одном представлении мне нужно отключить или сделать доступным для чтения поле, как я могу этого достичь?
Я достиг этого на VIEWS.py
obj = ModelUpdate.objects.first()
field_object = ModelUpdate._meta.get_field('myfield')
field_value = getattr(obj, field_object.attname)
Предполагаю, что вы хотите повторно использовать форму в двух отдельных представлениях, но чтобы в одной версии было поле только для чтения? Если так, то вы можете либо иметь две версии формы в вашем файле forms.py
, если код формы не особенно длинный, либо добавить какую-то проверку в def __init__
формы, чтобы установить поле как readonly при определенном условии:
my_field = forms.CharField(widget=forms.TextInput(attrs={'readonly':'readonly'}))
Вы можете использовать наследование.
class AbstractForm(forms.Form):
# General fields
class AllEditableForm(AbstractForm):
# The field which we will allow to edit
target_field = forms.XXXXField()
class OneFieldReadOnly(AbstractForm):
# Make the field read only
target_field = forms.XXXXField(disabled=True)