I am trying to dynamically add an attribute to at runtime using the following snippets of code:
View
...
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'
In Model
...
def is_used_flag(self):
  self.is_used = True
def is_not_used_flag(self):
  self.is_used = False
Why does it work correctly when in the loop but when I try to retrieve the attribute from an instance after it does not work? I have run into the same issue using setattr, appellation.is_used = True and modifying __dict__. Also is there a better way to do this? 
I have referenced these posts:
Why can't you add attributes to object in python? I do have a dict but it does not seem to "persist" after the loop
How to assign a new class attribute via __dict__? Same issue as mentioned above
Dynamically defining instance fields in Python classes Same as above
Update
Since both answers mention similar things, I should clarify what my intentions are. I do not want to actually persist the value in the DB. I just want to serialize it and use it in the front end.
 
     
    