跳到内容

django-locals-in-render-function (DJ003)

源自 flake8-django linter。

作用

检查在render函数中使用locals()的情况。

为什么这不好?

使用locals()可能会将内部变量或其他无意的数据暴露给渲染的模板。

示例

from django.shortcuts import render


def index(request):
    posts = Post.objects.all()
    return render(request, "app/index.html", locals())

建议改为

from django.shortcuts import render


def index(request):
    posts = Post.objects.all()
    context = {"posts": posts}
    return render(request, "app/index.html", context)