我正在尝试将django-reversion
引入我的应用程序,该应用程序也使用django-organizations
。尽管核心功能正常运行,但在获取Version
field_dict时遇到了一些问题。
我有一个类似这样的帐户类,已在修订版中注册
from organizations.models import Organization
reversion.register(Organization)
@reversion.register()
UserAccount(Organization):
account_type = serializers.CharField()
feature_1_enabled = serializers.BooleanField()
...
我使用提供的管理命令创建了初始修订,一切似乎都很好。 修改和保存后,我有几个预期的Version对象。但是,在编写测试或在django shell中工作时,获取field_dict时出现意外错误。
account = UserAccount.objects.first()
arbitrary_version = Version.objects.get_for_object(account)[0]
print arbitrary_version.field_dict
结果
File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python2.7/dist-packages/reversion/models.py", line 295, in field_dict
db=self.db,
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 380, in get
self.model._meta.object_name
DoesNotExist: Version matching query does not exist.
但是,几乎所有其他东西都可以工作。我可以使用这些Version对象还原,获取序列化数据等信息。
我对导致这种情况的原因一无所知,并且回溯并不是特别有用。非常感谢您对诊断此问题的任何帮助。