Форум сайта python.su
Мне нужно, чтобы некоторые поля нельзя было редактировать после того, как объект был создан в админке. Для этого я использую такой код:
class ZayvkiAdminForm(ModelForm): class Meta: model = Zayvki def __init__(self, *args, **kwargs): # super(ZayvkiAdminForm, self).__init__(*args, **kwargs) if not kwargs.get('instance', None): if not kwargs.get('initial', None): kwargs['initial'] = {} if not kwargs['initial'].get('nomer_zayvki', None): kwargs['initial']['nomer_zayvki'] = get_request_number() super(ZayvkiAdminForm, self).__init__(*args, **kwargs) instance = getattr(self, 'instance', None) if instance and instance.id: self.fields['tipe_zayvki'].required = False self.fields['tipe_zayvki'].widget.attrs['disabled'] = 'disabled' self.fields['nomer_zayvki'].widget.attrs['readonly'] = True
Офлайн
я бы сделал что то в таком виде:
def clean_tipe_zayvki(self): return self.instance.tipe_zayvki
Офлайн
Немного не понял, но попробую позже обязательно, сейчас голова не варит.
Офлайн