SQLite not respecting CharField or FixedCharField max_length
> Values that exceed length are not truncated automatically.

As that says, values that exceed length **are not truncated**.

I'd suggest that you should familiarize yourself with the database you're using, sqlite in this case: https://sqlite.org/datatype3.html

Sqlite has the following data-types:

* text
* blob
* integer
* real (float)
* null

Creating a `*char*` column will use the `text` data-type, but there is no validation of max-lengths or anything. You can create an explicit constraint, but the default behavior is just to treat it as text. That is a great suggestion. I went ahead and made assumptions I shouldn't have made. Thank you for the tips.

For reference, taken from the [SQLite documentation about quirks](https://sqlite.org/quirks.html#flexible_typing):
> [...] SQLite allows you to store a 2000-character string into a column of type VARCHAR(50). Other SQL implementions would either throw an error or truncate the string. SQLite stores the entire 2000-character string with no loss of information and without complaint. [...]
```python
from peewee import *

database = SqliteDatabase(':memory:')

class User(Model):
    class Meta:
        database = database
    username = CharField(max_length=21)

database.create_tables([User])

username = 'a' * 42
assert len(username) == 42

u = User.create(username=username)
assert u.username == username

u = User.get(username=username)
assert u.username == username
```
Nothing special happens when attempting to insert values of length > `max_length` into fields of type `CharField` or `FixedCharField`. Reading the code, I can not find any validation steps performed for respecting `max_length` either.

I was expecting an exception to be raised due to [docs stating](http://docs.peewee-orm.com/en/latest/peewee/api.html#CharField)
> Values that exceed length are not truncated automatically.