model.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:torpeewee 作者: snower 项目源码 文件源码
def get_or_create(cls, **kwargs):
        defaults = kwargs.pop('defaults', {})
        query = cls.select()
        for field, value in kwargs.items():
            if '__' in field:
                query = query.filter(**{field: value})
            else:
                query = query.where(getattr(cls, field) == value)

        try:
            result = (yield query.get()), False
        except cls.DoesNotExist:
            try:
                params = dict((k, v) for k, v in kwargs.items()
                              if '__' not in k)
                params.update(defaults)
                result = (yield cls.create(**params)), True
            except IntegrityError as exc:
                try:
                    result = (yield query.get()), False
                except cls.DoesNotExist:
                    raise exc
        raise gen.Return(result)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号