codeFlowType:
codeWrite
codeFlowLang:
Python
1)Создать 2 группы пользователей в Django admin panel Главный администратор (Все права) Сотрудник (Права на просмотр всех категорий и моделей без возможности изменения 2)Создать 3 аккаунта для каждой группы пользователей.
3)Создать fixtures. Все на языке программирования Python с использованием фреймворка Django и с объяснением, что где пишется.
Код для создания 2 групп пользователей в Django admin panel:
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import User
# Создание группы "Главный администратор"
admin_group = Group.objects.create(name='Главный администратор')
# Добавление всех прав
admin_permissions = Permission.objects.all()
admin_group.permissions.set(admin_permissions)
# Создание группы "Сотрудник"
employee_group = Group.objects.create(name='Сотрудник')
# Получение прав на просмотр всех категорий и моделей без возможности изменения
view_permissions = Permission.objects.filter(codename__startswith='view_')
employee_group.permissions.set(view_permissions)
Код для создания 3 аккаунтов для каждой группы пользователей:
# Создание аккаунтов для группы "Главный администратор"
for i in range(3):
username = f'admin{i}'
password = 'admin123'
email = f'admin{i}@example.com'
user = User.objects.create_user(username, email, password)
user.is_staff = True
user.is_superuser = True
user.groups.add(admin_group)
user.save()
# Создание аккаунтов для группы "Сотрудник"
for i in range(3):
username = f'employee{i}'
password = 'employee123'
email = f'employee{i}@example.com'
user = User.objects.create_user(username, email, password)
user.groups.add(employee_group)
user.save()
Код для создания fixtures:
from django.core.management import call_command
# Создание fixtures
call_command('dumpdata', '--natural-foreign', '--exclude', 'auth.permission', '--exclude', 'contenttypes', '--output', 'fixtures.json')
Пояснение:
dumpdata
для создания fixtures, исключая таблицы auth.permission
и contenttypes
, а также используя флаг --natural-foreign
для вывода естественных ключей. Результат сохраняется в файл fixtures.json
.