Skip to content

French local : Use class Validators for SIRET and SIREN model fields, do not format output #473

Open
@LLyaudet

Description

@LLyaudet

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)."
image
I don't know what is the nicest way to avoid this :

  • remove formatting in
    def prepare_value(self, value):
    if value is None:
    return value
    value = value.replace(' ', '').replace('-', '')
    return ' '.join((value[:3], value[3:6], value[6:9], value[9:]))
    ?
  • change maxlength from 14 to 17 ?
    Modifying a SIRET each time you submit a form because of this is an unvolontary "dark pattern" ;)

Thanks, best regards,
Laurent Lyaudet

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions