<p>正如其他作者所说,您的特定用例(转换时间戳)最好通过模板标记来解决</p>
<p>如果仍要修改数据,请查看djangos<code>MultipleObjectMixin</code>中使用的djangos<code>ListView</code>:</p>
<pre><code>class MultipleObjectMixin(ContextMixin):
"""A mixin for views manipulating multiple objects."""
allow_empty = True
queryset = None
model = None
paginate_by = None
paginate_orphans = 0
context_object_name = None
paginator_class = Paginator
page_kwarg = 'page'
ordering = None
def get_queryset(self): # YOU CAN OVERRIDE THIS METHOD FOR YOUR USE
"""
Return the list of items for this view.
The return value must be an iterable and may be an instance of
`QuerySet` in which case `QuerySet` specific behavior will be enabled.
"""
if self.queryset is not None:
queryset = self.queryset
if isinstance(queryset, QuerySet):
queryset = queryset.all()
elif self.model is not None:
queryset = self.model._default_manager.all()
else:
raise ImproperlyConfigured(
"%(cls)s is missing a QuerySet. Define "
"%(cls)s.model, %(cls)s.queryset, or override "
"%(cls)s.get_queryset()." % {
'cls': self.__class__.__name__
}
)
ordering = self.get_ordering()
if ordering:
if isinstance(ordering, str):
ordering = (ordering,)
queryset = queryset.order_by(*ordering)
return queryset
</code></pre>
<p>您可以挂接到<code>get_queryset()</code>方法并返回一个iterable,该iterable按照您希望的方式进行转换。使用这个钩子,您仍然可以使用泛型<code>ListView</code>的所有优点</p>