Python django进行查询
数据库表Python django进行查询,python,django,Python,Django,数据库表 select * from AAA; id | Name | Class | Grade | -------------------------------------- 1 | john | 1 | A | 2 | Jane | 2 | B | 3 | Joon | 2 | A | 4 |
select * from AAA;
id | Name | Class | Grade |
--------------------------------------
1 | john | 1 | A |
2 | Jane | 2 | B |
3 | Joon | 2 | A |
4 | Josh | 3 | C |
|
代码
搜索结果->2
我想按值将等级改为班级
Django
target_filter = 'Class'
search_result = AAA.objects.filter(__"target_filter..."__ = '3').count()
搜索结果->1
Q) 如何完成此代码?可能吗?也许你可以这样做:
target_filter = 'Class'
filter_args = {target_filter: 3}
search_result = AAA.objects.filter(**filter_args).count()
import somemodule
...
target_filter = 'Class'
search_result = AAA.objects.filter(getattr(somemodule, target_filter) = '3').count()
不知何故,这和我给出的答案是一样的。您也可以使用
getattr
,但现在可以使用模块对象本身。如果是同一个模块,则为\uuuuu模块
,或者为导入的模块
target_filter = 'Class'
search_result = AAA.objects.filter(getattr(__module__, target_filter) = '3').count()
编辑:我搞错了,无法通过
访问当前模块。如果该类与搜索在同一模块中声明,则可以使用globals()[target\u filter]
访问它。如果您的搜索来自其他模块,您可以这样做:
target_filter = 'Class'
filter_args = {target_filter: 3}
search_result = AAA.objects.filter(**filter_args).count()
import somemodule
...
target_filter = 'Class'
search_result = AAA.objects.filter(getattr(somemodule, target_filter) = '3').count()
您可以通过直接放入kwargs来缩短aeby的示例
target_filter = 'Class'
search_result = AAA.objects.filter(**{target_filter:3}).count()