我正在使用django-reversion。如何在ListView中打印每个模型中的所有修订?
我试过了
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。
是否可以打印修订号以及特定对象的修订号中的具体修订号?
我已经搜索过了,所以我认为其他人也有同样的问题,但我什么也找不到。
发布于 2015-05-06 22:51:13
你有没有想过这个问题?Reversion通过执行以下操作在内部完成此操作:
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)https://stackoverflow.com/questions/29704592
复制相似问题