Ich gehe davon aus, wenn Sie sagen "zum Bearbeiten aktiviert" Sie beziehen sich auf ein Formularfeld. Ich gehe auch davon aus, dass die Daten beim Laden des Formulars bereits im Modell gespeichert werden.
In diesem Fall sollte dies auf dem entsprechenden Formular für dieses Modell erfolgen. Sie müssen das zu deaktivierende Formularfeld initialisieren und es dann beim Laden des Formulars aktivieren.
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
custom_value = self.fields.get('custom_value')
if custom_value and custom_value.widget.attrs['value'] == 'CUSTOM':
self.fields['value'].widget.attrs['disabled'] = 'false'
Ich weiß, dass Ihr Code ist nur ein Beispiel, aber unter Verwendung von value
als Klassenattributnamen verwirrend ist.
Wenn Sie dies dynamisch in einem Formular ausführen möchten, indem Sie beispielsweise eine Auswahl auswählen und dann eine andere Option ohne Browseraktualisierung aktivieren, muss dies in Javascript erfolgen. So würden Sie es mit nur Django-Formen machen.