我尝试创建界面以便于访问在线游戏数据。使用HeroModel类(使用SQLAlchemy)创建数据库中每个英雄的一些基本参数。
还需要在Model上方创建 Manager 类来更改其实例中的数据(在 Manager 中),但不在数据库中。正如我现在看到的,实现此目的的唯一方法是将所有Model字段重写为 Manager 类。
"来自Model"机制对我来说似乎是正确的解决方案。
如何在Python中实现这个想法?
答案 0 :(得分:0)
我不确定我是否理解你的问题,但如果你想从数据库中获取一个实例并更改其属性而不保存数据库中的更改,只要你不这样做就可以自由地进行在对象上调用.save
。
举个例子:
hero = Hero.objects.get(pk=1) # Get the instance from the database
hero.name = "My Super Hero"
hero.save() # Here you are changing the attributes and saving to the database
hero.name = "Actually a villain"
hero.power = 200
hero.life = 90
hero.life = 80 # All of these changes are NOT reflected to the database
hero = Hero.objects.get(pk=1) # Reload the same instance from database
print(hero.name) # Outputs "My Super Hero" because other changes were not saved