managed = False игнорируется и default_permissions = () прослушивается? - PullRequest
0 голосов
/ 24 марта 2020

Django: 2.2.9 Python: 3.7

Я пытаюсь создать фиктивную модель для хранения своих пользовательских разрешений. Я не хочу, чтобы Django создавал таблицу в моей базе данных и не создавал разрешения по умолчанию.

Моя модель выглядит следующим образом:

class Permissions(models.Model):
    class Meta:
        managed = False,
        default_permissions = (),
        permissions = (
            ("approbations_write", "Modifier/Emettre les approbations"),
            ("config_read_saufmdp", "Lecture configuration applicative avec mot de passe masqués"),
            ("config_write", "Modification configuratin applicative"),
            ("config_deploy_read", "Lecture configuration interne DEPLOY"),
            ("config_deploy_write", "Modification configuration interne DEPLOY"),
            ("ssh_write", "Effectuer un échange de clé SSH"),
            ("historique_read_normal", "Lecture de l'histrique sans conf DEPLOY interne"),
            ("historique_read_full", "Lecture de l'histrique sans restrictions"),
            ("releases_write", "Purge des releases potentiellement bloquées"),
        )

Я использую makemigrations, и мои параметры находятся в файл миграции:

        migrations.CreateModel(
            name='Permissions',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ],
            options={
                'permissions': (('approbations_write', 'Modifier/Emettre les approbations'), ('config_read_saufmdp', 'Lecture configuration applicative avec mot de passe masqués'), ('config_write', 'Modification configuratin applicative'), ('config_deploy_read', 'Lecture configuration interne DEPLOY'), ('config_deploy_write', 'Modification configuration interne DEPLOY'), ('ssh_write', 'Effectuer un échange de clé SSH'), ('historique_read_normal', "Lecture de l'histrique sans conf DEPLOY interne"), ('historique_read_full', "Lecture de l'histrique sans restrictions"), ('releases_write', 'Purge des releases potentiellement bloquées')),
                'managed': (False,),
                'default_permissions': ((),),
            },
        ),

Тем не менее, когда я выполняю миграцию, Django создает таблицу в моей базе данных (PostGreSQL). Это не создает разрешения по умолчанию, но создает странное разрешение:

74  "Can () permissions"    14  "()_permissions"

Кажется управляемым = Ложь игнорируется, а разрешения по умолчанию не работают, как описано.

Спасибо за вашу помощь.

...