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)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM