You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now the SIRET and SIREN model fields use SIRET and SIREN form fields that do the validation.
I prefer the architecture of the IBAN and BIC fields in generic that use class Validators,
since you can call the validators without using form fields.
Would you accept if I submit a PR with a new file validators.py in fr/
and add in it SIRENValidator and SIRETValidator classes ?
I would use them as is done for IBANValidator and BICValidator.
There is also an annoying thing :
SIRET is max length 14
but it is formatted with spaces.
Thus if in Django admin you modify a form with a valid SIRET in it you get this error :
"Ensure this value has at most 14 characters (it has 17)."
I don't know what is the nicest way to avoid this :
If you want to keep some arguments from the model, the workaround is more complicated (and ugly) :
class MyModelForm(forms.ModelForm):
# siret = FRSIRETField(max_length=17) will not work with blank=True
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["siret"].max_length = 17
for i, validator in enumerate(self.fields["siret"].validators):
if isinstance(validator, MaxLengthValidator):
self.fields["siret"].validators[i] = MaxLengthValidator(17)
break
self.fields["siret"].widget.attrs["maxlength"] = 17
Hello,
Right now the SIRET and SIREN model fields use SIRET and SIREN form fields that do the validation.
I prefer the architecture of the IBAN and BIC fields in generic that use class Validators,
since you can call the validators without using form fields.
Would you accept if I submit a PR with a new file validators.py in fr/
and add in it SIRENValidator and SIRETValidator classes ?
I would use them as is done for IBANValidator and BICValidator.
There is also an annoying thing :
SIRET is max length 14
but it is formatted with spaces.
Thus if in Django admin you modify a form with a valid SIRET in it you get this error :
"Ensure this value has at most 14 characters (it has 17)."
I don't know what is the nicest way to avoid this :
django-localflavor/localflavor/fr/forms.py
Lines 251 to 255 in 80c6584
Modifying a SIRET each time you submit a form because of this is an unvolontary "dark pattern" ;)
Thanks, best regards,
Laurent Lyaudet
The text was updated successfully, but these errors were encountered: