Как добавить пользовательское разрешение к модели User в django?

в django по умолчанию, когда syncdb запускается с установленным django.contrib.auth, он создает разрешения по умолчанию для каждой модели ... например, foo.can_change, foo.can_delete и foo.can_add. Чтобы добавить пользовательские разрешения к моделям, можно добавить класс Meta: в модель и определить разрешения там, как описано здесь https://docs.djangoproject.com/en/dev/topics/auth/#custom-permissions

Мой вопрос в том, что мне делать, если я хочу добавить настраиваемое разрешение для модели User? как foo.can_view. Я мог бы сделать это с помощью следующего фрагмента,

ct = ContentType.objects.get(app_label='auth', model='user')
perm = Permission.objects.create(codename='can_view', name='Can View Users', 
                                  content_type=ct)
perm.save()

Но мне нужно что-то, что хорошо работает с syncdb, например, класс Meta в моих пользовательских моделях. Должен ли я просто иметь их в классе Meta: в UserProfile, поскольку это способ расширить модель пользователя. но это ПРАВИЛЬНЫЙ способ сделать это? Разве это не связывает его с моделью UserProfile?

19
задан gsin 11 October 2011 в 09:57
поделиться