views.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:CoBL-public 作者: lingdb 项目源码 文件源码
def view_changes(request, username=None, revision_id=None, object_id=None):
    """Recent changes"""
    boring_models = [LanguageListOrder, LanguageList, MeaningList]
    boring_model_ids = [ContentType.objects.get_for_model(m).id for m in
                        boring_models]

    def interesting_versions(self):
        return self.version_set.exclude(content_type_id__in=boring_model_ids)
    Revision.add_to_class("interesting_versions", interesting_versions)

    if not username:
        recent_changes = Revision.objects.all().order_by("-id")
    else:
        recent_changes = Revision.objects.filter(
            user__username=username).order_by("-id")
    paginator = Paginator(recent_changes, 50)

    try:  # Make sure page request is an int. If not, deliver first page.
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1

    try:  # If page request is out of range, deliver last page of results.
        changes = paginator.page(page)
    except (EmptyPage, InvalidPage):
        changes = paginator.page(paginator.num_pages)

    userIds = set(Revision.objects.values_list("user", flat=True).distinct())
    contributors = sorted([(User.objects.get(id=user_id),
                            Revision.objects.filter(user=user_id).count())
                           for user_id in userIds
                           if user_id is not None],
                          key=lambda x: -x[1])

    return render_template(request, "view_changes.html",
                           {"changes": changes,
                            "contributors": contributors})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号