Model converter behavior change
Thanks for the succinct report and isolating the problematic changeset. No, this was a regression that I didn't foresee. I've patched this and will issue a new release. This is fixed and I've tagged a new version 3.14.4, which contains the fix and additional tests. @coleifer Thank you for such quick response and fix!
Hi!
While updating peewee from 3.13.3 to 3.14.3 I noticed model converter behavior change.
If model has __str__ method defined, it is used to represent this model's value in the expression instead of primary key:

```python
import uuid
from peewee import *


db = SqliteDatabase(":memory:")


class BaseModel(Model):
    class Meta:
        database = db


class User(BaseModel):
    id = CharField(max_length=255, primary_key=True)
    name = CharField(max_length=255)

    def __str__(self):
        return f"{self.name}"


if __name__ == "__main__":
    User.create_table()

    users = []
    for i in range(10):
        users.append(User.create(id=uuid.uuid4(), name=f"User_{i}"))

    query = User.filter(User.id << users)
    print(query.sql())
    print(list(query))
```
Output:
```
('SELECT "t1"."id", "t1"."name" FROM "user" AS "t1" WHERE ("t1"."id" IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?))', ['User_0', 'User_1', 'User_2', 'User_3', 'User_4', 'User_5', 'User_6', 'User_7', 'User_8', 'User_9'])
[]
```

The change was introduced in this commit: https://github.com/coleifer/peewee/commit/ebe3ad5023d60ebf2fb91528d422a01596220cde

I'm wondering is this behavior is intentional.
Thanks.