2013-04-26 1 views
10

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

Проблема в том, что новое разрешение не указано в списке разрешений.

есть что-то, что мне нужно сделать, чтобы добавить его в этот список?

class Meta: 
     permissions = (
      ("add_remove_job", "Can add/remove jobs"), 
     ) 

РЕШЕНИЕ: Это известное ограничение Югом, решение сделать SyncDB --all

+0

С момента вашего решения вы должны выбрать ответ, который дал вам решение. – Jeremy

ответ

2

Что вам нужно сделать, это SyncDB каждый раз, когда вы добавлять/изменять разрешение для модели.

python manage.py syncdb 
+0

не работал, я пытался синхронизировать Я использую Юг для миграции DB, если это что-то значит. – user2323711

12

попробовать:

manage.py syncdb --all 

В противном случае, Вы можете заставить Джанго генерировать разрешения для конкретного приложения:

from django.contrib.auth.management import create_permissions 
from django.apps import apps 

create_permissions(apps.get_app_config('my_app_name')) 

Это будет делать все модели в приложении. Вы можете заменить список объектов класса модели вместо «get_models()», если вы хотите только подмножество.

+0

Unfortunatelly больше не работает с Django 1.7. Вы должны «из django.apps импортировать приложения», а затем вызывать 'create_permissions (apps.get_app_config ('my_app_name'))' но (я думаю, если вы используете миграции), он вернется после 'if not router.allow_migrate (using, Permission) 'ничего не делая. – yofee

+0

Важно использовать флаг '--all' для приложений, использующих Юг! Благодарю. – Caumons

+0

Работает в 1.8, спасибо! – Chris

-3
python manage.py migrate --fake 
+1

Как это связано с вопросом? –