Python 通过字符串调用函数、接近属性

需求:传入的是函数名、属性名,想通过字符串调用函数,接近属性。

 

通过字符串接近、变动属性

变量:model_name, field_name

# 获取 model
model = AppConfig.get_model(model_name)
# 获取 field_name 的值
getattr(model, field_name)
# 变动 field_name 对应的值,比如 + 1

# 使用 Django F
from django.db.models import F

reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed = F('stories_filed') + 1
reporter.save()
# 那么使用字符串如何实现上面的
# 查找 setattr 方法帮助
# setattr(x, 'foobar', 123) is equivalent to x.foobar = 123.
setattr(model, field_name) =  F(field_name) + 1

 

连接 django 的 Q

from django.db.models import Q

query = Q()
for entry in a:
    query = query | Q(my_field__contains=entry)

  

posted @ 2017-03-29 09:06  Jay54520  阅读(2160)  评论(0编辑  收藏  举报