在Django中,您可以进行如下数据库查询:
Model.objects.filter(name__icontains = 'bob')
Run Code Online (Sandbox Code Playgroud)
问题是:这是如何在"掩护下"工作的?双下划线是Django还是Python的东西?这只是一个名为的变量name__icontains,还是某种属性访问语法?在前一种情况下,该filter方法如何解析变量名称以确定您在Model表中搜索包含字符串某处的名称bob?
ick*_*fay 14
这是一个Django的东西,用一些Python的东西实现.
在Python中,您可以获取传递给函数或方法的关键字参数的字典:
>>> def func(*args, **kwargs):
... print(kwargs)
>>> func(a=1, b=2)
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
从那里,它可以简单地遍历字典键并将它们拆分__,然后根据需要进行解释.在这种情况下,它采用最后一部分并将其解释icontains为不区分大小写的包含.
| 归档时间: |
|
| 查看次数: |
7734 次 |
| 最近记录: |