Переименовать django пользовательских разрешений - PullRequest
0 голосов
/ 31 января 2020

Я работаю с приложением django 2.0 и собираюсь обновить django версию до 3.0. Но в моем проекте есть несколько пользовательских разрешений, таких как view_modelname .

class MyConcreteModel(models.Model):
    model_field_1 = models.CharField(max_length=100, blank=False)
    # other fields
    class Meta:
        permissions = (
            ("view_myconcretemodel", "Can see available device interfaces"),
        )      

В django 3 (начиная с версии 2.1) такие разрешения разрешены по умолчанию. Итак, у меня возник конфликт с именами разрешений.

Теперь я пытаюсь переименовать пользовательские разрешения перед обновлением django версии.

class MyConcreteModel(models.Model):
    model_field_1 = models.CharField(max_length=100, blank=False)
    # other fields
    class Meta:
        permissions = (
            ("user_view_myconcretemodel", "User can see available device interfaces"),
        )      

После миграции в БД были созданы «новые» (с новыми именами) разрешения. Но старые разрешения все еще существуют, и у всех пользователей есть старые разрешения (со старыми именами, такими как view_myconcretemodel ). Очевидно, мне нужны «новые» разрешения для всех пользователей.

Есть ли возможность просто переименовать разрешения или дать «новые» разрешения соответствующим пользователям (в соответствии со «старыми» разрешениями) и сделать это автоматически?

...