首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个getattr中使用getattr

在另一个getattr中使用getattr
EN

Stack Overflow用户
提问于 2017-11-21 15:29:23
回答 2查看 114关注 0票数 0

如何在另一个getattr中使用getattr方法

我想写些这样的东西:

代码语言:javascript
复制
    my_attr = 'group.getattr(name)'
    my_list = list()
    for q in queryset_for_table:
        y = getattr(q, my_attr, None)
        my_list.append(y)

如何正确地编写my_attr字符串?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-21 15:35:22

如果我正确地理解了您,您希望收集所有具有name属性的q对象的groups的group s。如果是这样的话,下面的代码将通过将所需的操作分成两个可读的步骤来工作:

代码语言:javascript
复制
my_list = list()
for q in queryset_for_table:
    group = getattr(q, 'group', None)
    if group is not None:
        my_list.append(group.name)

如果所有q对象都具有group属性,则还可以使用:

代码语言:javascript
复制
my_list = list()
for q in queryset_for_table:
    my_list.append(q.group.name)

对于任意嵌套属性,以下内容应该可以工作:

代码语言:javascript
复制
def get_nested_attributes(object, attributes):
    for attribute in attributes:
        objects = [getattr(o, attribute, None) for o in objects]
    return objects

my_list = get_nested_attrs(queryset_for_table, ('group', 'name'))

此解决方案遍历属性。从你的查询集开始,然后得到组,然后得到组名。

票数 1
EN

Stack Overflow用户

发布于 2017-11-28 09:08:07

我找到答案了!

我需要使用'firstfield__secondfield__thirdfield'在python中创建多个示例。

对于问题描述中的示例,我应该编写:queryset_for_table.values('group__name')

也许它会对那里的人有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47416747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档