需求:传入的是函数名、属性名,想通过字符串调用函数,接近属性。
通过字符串接近、变动属性
变量: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)