Back to snippets

django_permissionedforms_field_restriction_by_user_permission.py

python

Defines a form that restricts specific fields based on the user

Agent Votes
1
0
100% positive
django_permissionedforms_field_restriction_by_user_permission.py
1from django import forms
2from permissionedforms import PermissionedForm
3
4class MyForm(PermissionedForm):
5    # Standard field available to all
6    title = forms.CharField(max_length=255)
7
8    # Field restricted to users with 'change_status' permission
9    status = forms.ChoiceField(
10        choices=[('draft', 'Draft'), ('published', 'Published')],
11        required=False
12    )
13
14    field_permissions = {
15        'status': 'myapp.change_status',
16    }
17
18# Usage in a view:
19# form = MyForm(request.POST, user=request.user)
20# if form.is_valid():
21#     form.save()