2015-04-17 47 views
1

我正在使用django-reversion。如何在ListView中的每個模型中打印所有修訂版本?獲取django-reversion的所有修訂版本

我已經試過

class RevisionListView(ListView): 
    model = reversion.revisions.Version 
    template_name = "revision_list.html" 

和印刷模板中的查詢集與

{% for version in version_list %} 
    {{ version }} 
{% endfor %} 

這似乎工作,但我不知道怎麼去鏈接到「原始對象'(通過get_absolute_url)。看起來我得到了object_id和content_type,但我不知道如何獲取在models.py中定義的對象的絕對url。

我可以在特定對象的修訂版本中打印修訂號和特定修訂號的數量嗎?

我已經通過搜索,因爲我認爲別人有同樣的問題,但我找不到任何東西。

回答

0

你有沒有想過這個? 這是做內部回覆:

def history_view(self, request, object_id, extra_context=None): 
    """Renders the history view.""" 
    # check if user has change or add permissions for model 
    if not self.has_change_permission(request): 
     raise PermissionDenied 
    object_id = unquote(object_id) # Underscores in primary key get quoted to "_5F" 
    opts = self.model._meta 
    action_list = [ 
     { 
      "revision": version.revision, 
      "url": reverse("%s:%s_%s_revision" % (self.admin_site.name, opts.app_label, opts.module_name), args=(quote(version.object_id), version.id)), 
     } 
     for version 
     in self._order_version_queryset(self.revision_manager.get_for_object_reference(
      self.model, 
      object_id, 
     ).select_related("revision__user")) 
    ] 
    # Compile the context. 
    context = {"action_list": action_list} 
    context.update(extra_context or {}) 
    return super(VersionAdmin, self).history_view(request, object_id, context) 
相關問題