get_attribute.py 文件源码

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

项目:django-dynamic-views 作者: ddaan 项目源码 文件源码
def get_attribute(value, arg, return_as_string=True):
    """
    Gets an attribute of an object dynamically from a string name
    """
    numeric_test = re.compile("^\d+$")

    if hasattr(value, '__iter__') and arg in value:
        value = value[arg]
    elif hasattr(value, str(arg)):
        value = getattr(value, arg)
    elif numeric_test.match(str(arg)) and len(value) > int(arg):
        value = value[int(arg)]
    else:
        return settings.TEMPLATE_STRING_IF_INVALID

    if hasattr(value, '__call__'):
        value = value()

    if return_as_string:
        value = mark_safe(value)

    return value
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号