无法从Django版本版本实例返回字段dict

时间:2019-04-04 17:37:22

标签: django django-reversion

我正在尝试将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对象还原,获取序列化数据等信息。

我对导致这种情况的原因一无所知,并且回溯并不是特别有用。非常感谢您对诊断此问题的任何帮助。

0 个答案:

没有答案