forms.py 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. from django import forms
  2. from django.forms.models import modelform_factory
  3. from django.forms import widgets
  4. from django.utils.safestring import mark_safe
  5. from .models import Adherent
  6. class StringWidget(widgets.Input):
  7. def render(self, name, value, attrs=None):
  8. # Create a hidden field first
  9. hidden_field = widgets.HiddenInput(attrs)
  10. return mark_safe(u'%s %s' % (value, hidden_field.render(value, attrs)))
  11. class AdherentForm(forms.ModelForm):
  12. adherent_id = forms.CharField(disabled=True, label='Numéro d’adhérent')
  13. class Meta:
  14. model = Adherent
  15. exclude = ()
  16. def __init__(self, *args, **kwargs):
  17. super().__init__(*args, **kwargs)
  18. if self.instance.id:
  19. self.fields['adherent_id'].initial = self.instance.id
  20. else:
  21. self.fields['adherent_id'].initial = 'Veuillez sauvegarder pour obtenir un numéro d’adhérent.'
  22. self.fields['adherent_id'].widget = StringWidget()
  23. def has_changed(self):
  24. return True