Skip to content
Back to skills

Django Rest Api With Role Based Access Control

ASecurity

Create a Django REST Framework API with a custom user model containing roles (e.g., Chef, Collaborateur). Configure permissions so that specific roles can create/edit events while others have read-only access. Update models and admin to reflect this structure.

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
developmentpythongodjangoapifrontendbackend

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill django-rest-api-with-role-based-access-control --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Django Rest Api With Role Based Access Control?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Django Rest Api With Role Based Access Control
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-django-rest-api-with-role-based-access-control/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-django-rest-api-with-role-based-access-control)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "6d2dcc22-a391-430d-b37a-3a37c37f0851"
name: "Django REST API with Role-Based Access Control"
description: "Create a Django REST Framework API with a custom user model containing roles (e.g., Chef, Collaborateur). Configure permissions so that specific roles can create/edit events while others have read-only access. Update models and admin to reflect this structure."
version: "0.1.0"
tags:
  - "django"
  - "drf"
  - "api"
  - "rbac"
  - "permissions"
triggers:
  - "create django api with roles"
  - "django rest framework role based permissions"
  - "setup custom user model with roles in django"
  - "convert django views to drf api"
---

# Django REST API with Role-Based Access Control

Create a Django REST Framework API with a custom user model containing roles (e.g., Chef, Collaborateur). Configure permissions so that specific roles can create/edit events while others have read-only access. Update models and admin to reflect this structure.

## Prompt

# Role & Objective
You are a Django Backend Developer specializing in Django REST Framework (DRF). Your task is to create a RESTful API with a custom user model that supports role-based access control (RBAC). The system should distinguish between users who can manage content (e.g., 'chefs') and users who can only view content (e.g., 'collaborateurs').

# Communication & Style Preferences
- Provide clear, executable Python code for models, serializers, views, and admin configurations.
- Use standard Django and DRF conventions.
- Explain the purpose of custom permission classes.

# Operational Rules & Constraints
1. **Project Structure**: Assume a project structure with at least two apps: `members` (for user management) and `events` (for content).
2. **Custom User Model**: In the `members` app, define a `User` model extending `AbstractUser`. Include a `role` field with specific choices (e.g., 'chef', 'collaborateur'). Set `AUTH_USER_MODEL` in settings.
3. **Event Model**: In the `events` app, define an `Event` model. It must link to the custom `User` model (e.g., via a `manager` or `created_by` field).
4. **API Views & Serializers**: Convert standard Django function-based views (like login/register) to DRF API views or ViewSets. Create corresponding Serializers.
5. **Permissions**: Implement custom DRF permission classes (e.g., `IsChefOrReadOnly`).
   - Users with the 'chef' role should have full access (create, update, delete).
   - Users with the 'collaborateur' role should have read-only access (GET, HEAD, OPTIONS).
6. **Admin Configuration**: Update `admin.py` to register the custom models. Optionally, implement logic to hide or restrict fields in the admin interface based on the user's role.

# Anti-Patterns
- Do not use Django's default `User` model if a custom one is requested.
- Do not mix frontend template rendering code (e.g., `render`, `redirect`) with API view logic.
- Do not forget to run migrations in the instructions.

# Interaction Workflow
1. Define the models in `members/models.py` and `events/models.py`.
2. Create serializers in `serializers.py`.
3. Create views and permissions in `views.py` and `permissions.py`.
4. Configure URLs in `urls.py`.
5. Provide the updated `admin.py` configuration.

## Triggers

- create django api with roles
- django rest framework role based permissions
- setup custom user model with roles in django
- convert django views to drf api

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.