如何使用getattr获取ManyToManyField值?
在模型的保存方法中:
getattr(Project.objects.filter(name=self.name)[0], 'type')
getattr(self, 'type')
getattr(Project.objects.filter(name=self.name)[0], 'user')
getattr(self, 'user')
我明白了:
10kmop
10kmop
auth.User.None
auth.User.None
user是ManyToManyField,我在这里没有。
我怎样才能获得这些用户价值?
答案 0 :(得分:0)
就像那样:
Project.objects.filter(name=self.name).first().user
答案 1 :(得分:0)
我遇到了类似的问题。 “无”响应绝对不代表没有关联用户。
getattr(self, 'user')
只是给你一个关联用户的链接,但这个链接的代表是无。
您只需要获取所有对象:
getattr(self, 'user').all()
应该做这项工作。
我在这里分享我的工作示例。我在我的自定义标签中使用了 getattr :
@register.filter
def keyvalue(cur_model, key):
if key == "item_components" :
return getattr(cur_model, key).all()
return getattr(cur_model, key)
item_components 是我模型中的 ManyToMany 字段。