If I'm getting multiple records from a database with peewee, I can convert them to dicts like this:
users = User.select().where(User.attribute == some_value).dicts()
However, often I only want one record (or know that only one record will be returned), so I can do:
one_user = User.get(User.name == some_value)
But I can't call .dicts()
on the object which is returned by that.
Is there a way to get the result of that get query in dict form?
At the moment the only thing I can think of is the unpythonic
one_user = User.select().where(User.name == some_value).dicts()[0]
You can use ".get()":
one_user = User.select().where(User.name == some_value).dicts().get()
Though you can also add a helper method:
class User(Model):
@classmethod
def get_as_dict(cls, expr):
query = cls.select().where(expr).dicts()
return query.get()
It's python. You can extend it.