forms.py 983 B

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