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