跳到内容

django-all-with-model-form (DJ007)

源自 flake8-django linter。

作用

检查 Django ModelForm 类中是否使用了 fields = "__all__"

为什么这不好?

如果一个 ModelForm 包含了 fields = "__all__" 属性,任何添加到模型中的新字段将会自动暴露以供修改。

示例

from django.forms import ModelForm


class PostForm(ModelForm):
    class Meta:
        model = Post
        fields = "__all__"

建议改为

from django.forms import ModelForm


class PostForm(ModelForm):
    class Meta:
        model = Post
        fields = ["title", "content"]