[英]Django - Permissions to proxy model
我從auth.Group
模型創建了一個代理模型,我想對其應用permissions
。
proxies.py
class InstitutionOwnerGroup(Group):
# Gestores
pk = 1
is_superuser = False
is_staff = False
class Meta:
proxy = True
permissions = (
('can_manage_institutions', 'Gerencia Instituições'),
)
數據遷移
# Generated by Django 2.1.1 on 2018-10-14 23:30
from django.db import migrations
from horsy.apps.accounts.proxies import InstitutionOwnerGroup
def create_owner_group(app, _schema):
InstitutionOwnerGroup.objects.create(
name="Gestores"
)
class Migration(migrations.Migration):
dependencies = [
('accounts', '0002_add_admin_user'),
]
operations = [
migrations.RunPython(create_owner_group)
]
管理面板中的Gestores模型:
給定的權限can_manage_institutions
未應用於數據遷移中的模型。
如何使用django權限系統將權限應用於從auth.Group
繼承的代理模型?
這是一個已知問題 。 最近有一個更新的拉取請求對其進行了修復,因此,運氣好的話,它將在下一版本的Django中得到修復。
同時,上面的票證中有一些建議的解決方法。 最簡單的方法似乎是手動為指向您的代理模型的非托管模型創建遷移 ,然后將觸發要創建的適當權限對象:
migrations.CreateModel(
name='InstitutionOwnerGroup',
fields=[
],
options={
'verbose_name': 'Group',
'managed': False, # Make it unmanaged
'proxy': True,
'verbose_name_plural': 'Groups',
},
bases=('myapp.proxies.group',),
managers=[
('objects', django.contrib.auth.models.GroupManager()),
],
),
您的里程可能與此有關-我不確定這樣做是否完全安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.