$83 GRAYBYTE WORDPRESS FILE MANAGER $52

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.162.162 | ADMIN IP 216.73.216.51
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/pylint_django/checkers/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/pylint_django/checkers//forms.py
"""Models."""
from astroid.nodes import Assign, AssignName, ClassDef
from pylint.checkers import BaseChecker
from pylint.checkers.utils import check_messages
from pylint.interfaces import IAstroidChecker

from pylint_django.__pkginfo__ import BASE_ID
from pylint_django.utils import node_is_subclass


def _get_child_meta(node):
    for child in node.get_children():
        if isinstance(child, ClassDef) and child.name == "Meta":
            return child
    return None


class FormChecker(BaseChecker):
    """Django model checker."""

    __implements__ = IAstroidChecker

    name = "django-form-checker"
    msgs = {
        f"W{BASE_ID}04": (
            "Use explicit fields instead of exclude in ModelForm",
            "modelform-uses-exclude",
            "Prevents accidentally allowing users to set fields, especially when adding new fields to a Model",
        )
    }

    @check_messages("modelform-uses-exclude")
    def visit_classdef(self, node):
        """Class visitor."""
        if not node_is_subclass(node, "django.forms.models.ModelForm", ".ModelForm"):
            # we only care about forms
            return

        meta = _get_child_meta(node)

        if not meta:
            return

        for child in meta.get_children():
            if not isinstance(child, Assign) or not isinstance(child.targets[0], AssignName):
                continue

            if child.targets[0].name == "exclude":
                self.add_message(f"W{BASE_ID}04", node=child)
                break

Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
11 Feb 2026 9.30 AM
root / root
0755
__pycache__
--
11 Feb 2026 9.30 AM
root / root
0755
__init__.py
0.783 KB
20 Jan 2026 1.01 PM
root / root
0644
auth_user.py
1.359 KB
20 Jan 2026 1.01 PM
root / root
0644
django_installed.py
1.288 KB
20 Jan 2026 1.01 PM
root / root
0644
foreign_key_strings.py
6.173 KB
20 Jan 2026 1.01 PM
root / root
0644
forms.py
1.481 KB
20 Jan 2026 1.01 PM
root / root
0644
json_response.py
2.638 KB
20 Jan 2026 1.01 PM
root / root
0644
migrations.py
6.277 KB
20 Jan 2026 1.01 PM
root / root
0644
models.py
4.501 KB
20 Jan 2026 1.01 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF Static GIF