$npx skillfedfor your agent

django-permissionedforms

Django extension for creating forms that vary according to user permissions

SkipPyPI Dynamic ContentReleased Feb 2022873.2K downloads / moBSDPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — django_permissionedforms-0.1-py2.py3-none-any.whl
v0.1 · released 2022-02-28 · Python >=3.7 · 1 runtime deps: Django

No. The package is abandoned with no maintenance signal since 2022-02-28. While the core idea is sound and install friction is low, using unmaintained code in a production Django application introduces technical debt and risk. For new projects, implement permission-based field filtering directly in your form logic; for existing projects, consider migrating away.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Django as a runtime dependency; form fields will only be conditionally hidden if the for_user parameter is passed at instantiation.
  • Low install friction with a single Django dependency.
  • However, the package is abandoned—last release was 2022-02-28 and last commit 2022-03-16.

License · maintenance · safety

BSD (permissive) — BSD license is permissive and poses no restrictions on use, modification, or distribution in most contexts.

last release 2022-02-28 (1628 days) · last repo commit 2022-03-16 · 14 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 873,239 downloads/mo, #4,838 on PyPI

Verify before relying

pip install django-permissionedforms

from permissionedforms import PermissionedForm
from django import forms

class PersonForm(PermissionedForm):
    first_name = forms.CharField()
    last_name = forms.CharField()
    class Meta:
        field_permissions = {'last_name': 'myapp.change_last_name'}

form = PersonForm(for_user=request.user)
  • Whether the package works with current Django versions given no updates since 2022-03-16
  • Whether permission checks integrate correctly with custom user models or third-party auth backends
  • Real-world adoption and whether the 873239 monthly downloads reflect active use or legacy installations
Same gist for agents: .md · .json

What it is and what it does

django-permissionedforms is a lightweight Django forms extension that lets you declaratively control which fields appear in a form based on the logged-in user's permissions. Instead of manually filtering fields in view code, you define a `field_permissions` dict in the form's Meta class, mapping field names to Django permission codenames. When you instantiate the form with `for_user=request.user`, fields the user lacks permission for are automatically omitted from the form.

The package provides two base classes: `PermissionedForm` for regular forms and `PermissionedModelForm` for model forms. It also exposes a metaclass and mixin for integrating permission handling into other custom form base classes. The permission check uses Django's standard `user.has_perm()` method, so it respects superuser status and custom permission backends. However, the package has been abandoned since its first release on 2022-02-28 and receives no maintenance or updates.

Use it for

  • Build admin or data-entry forms where certain fields (e.g., salary, status) are only visible to users with specific permissions.
  • Create multi-role forms where editors see different fields than reviewers, without duplicating form logic in views.
  • Restrict sensitive fields in ModelForms to superusers or staff by using arbitrary codenames like 'superuser'.
  • Integrate permission-based field visibility into Wagtail or other Django-based CMS forms using multiple inheritance.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Skip

No.

The package is abandoned with no maintenance signal since 2022-02-28. While the core idea is sound and install friction is low, using unmaintained code in a production Django application introduces technical debt and risk. For new projects, implement permission-based field filtering directly in your form logic; for existing projects, consider migrating away.

Install

django-permissionedforms on PyPI

Before you install

Low install friction with a single Django dependency. However, the package is abandoned—last release was 2022-02-28 and last commit 2022-03-16. No active maintenance or security updates.

Requires Django as a runtime dependency; form fields will only be conditionally hidden if the for_user parameter is passed at instantiation.

License in practice

BSD license is permissive and poses no restrictions on use, modification, or distribution in most contexts.

Quickstart

pip install django-permissionedforms

from permissionedforms import PermissionedForm
from django import forms

class PersonForm(PermissionedForm):
    first_name = forms.CharField()
    last_name = forms.CharField()
    class Meta:
        field_permissions = {'last_name': 'myapp.change_last_name'}

form = PersonForm(for_user=request.user)

Verify before relying

  • Whether the package works with current Django versions given no updates since 2022-03-16
  • Whether permission checks integrate correctly with custom user models or third-party auth backends
  • Real-world adoption and whether the 873239 monthly downloads reflect active use or legacy installations

Package facts

LicenseBSD permissive
Python supportSupports the current Python release >=3.7
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
Django
MaintenanceAbandoned 1,628 days since the last release
Last repo commit
First released
Downloads873,239 / month, #4,838 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaEnvironment :: Web EnvironmentFramework :: DjangoIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Evidence: django_permissionedforms-0.1-py2.py3-none-any.whl

Tags

Capabilities
django permission-based form fieldsconditional form fields by user permissionsdjango forms with access controlpermission-aware django formsshow hide form fields permissions
Topics
django-formspermission-control

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “django permission-based form fields”

Give your agent the search over MCP, or paste the wish link into any chat.

More Dynamic Content packages

MarkupSafe Worth it
PyPI · Dynamic Content · released Sep 2025

MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.

BSD-3-Clausecompiled wheel · 3.9+aging
797.1Mdownloads / mo
Jinja2 Worth it
PyPI · Dynamic Content · released Mar 2025

Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.

BSD-3-Clausepure Python · 3.7+aging
718.6Mdownloads / mo
soupsieve Worth it
PyPI · Python Modules · released Aug 2026

Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.

Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.

MITpure Python · 3.10+
428.6Mdownloads / mo
Werkzeug Worth it
PyPI · Application Frameworks · released Apr 2026

Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.

BSD-3-Clausepure Python · 3.9+
268.1Mdownloads / mo
Flask Worth it
PyPI · Application Frameworks · released Feb 2026

Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.

BSD-3-Clausepure Python · 3.9+
211.4Mdownloads / mo
Mako Worth it
PyPI · Dynamic Content · released Aug 2026

Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.

MITpure Python · 3.10+
201.7Mdownloads / mo

See also dry-rest-permissions · drf-access-policy · django-ace · djangorestframework-guardian · rest_condition · django-ckeditor-5 · django-bootstrap-datepicker-plus · django-enumfields · django-impersonate · zope.security