我正在尝试使用以下代码片段在运行时动态添加属性:
看法
...
for appellation in queryset:
if appellation.id in used_id_set:
appellation.is_used_flag()
print(appellation.is_used)
# prints true as expected
else:
appellation.is_not_used_flag()
first = queryset.first()
print(first.is_used)
# prints AttributeError: 'Appellation' object has no attribute 'is_used'
在模型中
...
def is_used_flag(self):
self.is_used = True
def is_not_used_flag(self):
self.is_used = False
为什么它在循环中可以正常工作,但是当我尝试从实例中检索属性时它不起作用?我使用 setattr 遇到了同样的问题,appellation.is_used = True并修改了__dict__. 还有没有更好的方法来做到这一点?
qq_笑_17
ibeautiful
相关分类