Strip whitespace of field for peewee Model

37 Views Asked by At

In peewee I have a model where I want to strip the white space of some fields when an instance is created. Is it possible to do this?

e.g.

import peewee as pw

class Person(pw.Model):
    email = pw.CharField()
    name = pw.CharField()

mom = Person(email=" [email protected] ", name=" Stella Bird ") # <- white space should be stripped automatically
1

There are 1 best solutions below

2
pandapunk94 On BEST ANSWER

To be able to clear out the white space you will need to use strip() in your class. Start by making an __init__ function in your class that takes in positional and keyword arguments.

class Person(pw.Model):
    email = pw.CharField()
    name = pw.CharField()

    def __init__(self, *args, **kwargs):
        kwargs["email"] = kwargs.get("email", "").strip()
        kwargs["name"] = kwargs.get("name", "").strip()
        super().__init__(*args, **kwargs)

This will strip the white space from the email and name.

The output with no white space:

mom = Person(email=" [email protected] ", name=" Stella Bird ")
print(mom.email)
print(mom.name) 

-----------------------------------------------------------------
[email protected]
Stella Bird