get_row.py 文件源码

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

项目:pymixup 作者: rdevost 项目源码 文件源码
def get_row_by_fields(model, **kwargs):
    """Get a unique row by arbitrary fields.

    Parameters
    ----------
    kwargs : dict of field names and values
    model : BaseModel

    Returns
    -------
    row
    """
    field_name = []
    field_value = []
    try:
        for name, value in kwargs.iteritems():
            field_name.append(getattr(model, name))  # Make sure column exists
            field_value.append(value)
    except AssertionError as e:
        raise

    try:
        if len(field_name) == 1:
            row = model.get(field_name[0] == field_value[0])
        elif len(field_name) == 2:
            row = model.get(field_name[1] == field_value[1])
        elif len(field_name) == 3:
            row = model.get(field_name[2] == field_value[2])
        elif len(field_name) == 4:
            row = model.get(field_name[3] == field_value[3])
        elif len(field_name) == 5:
            row = model.get(field_name[4] == field_value[4])
        else:
            raise ValueError('Too many arguments for row lookup')
    except DoesNotExist:
        raise
    else:
        return row
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号