в 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?