Fixed #1856 -- install content-type entries and auth permissions for
models regardless of the presence of an inner Admin class. Patch from Mathew Flanagan. git-svn-id: http://code.djangoproject.com/svn/django/trunk@3148 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c6dc7089a1
commit
2da4c4111e
|
@ -23,8 +23,6 @@ def create_permissions(app, created_models):
|
||||||
if not app_models:
|
if not app_models:
|
||||||
return
|
return
|
||||||
for klass in app_models:
|
for klass in app_models:
|
||||||
if not klass._meta.admin:
|
|
||||||
continue
|
|
||||||
ctype = ContentType.objects.get_for_model(klass)
|
ctype = ContentType.objects.get_for_model(klass)
|
||||||
for codename, name in _get_all_permissions(klass._meta):
|
for codename, name in _get_all_permissions(klass._meta):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
"""
|
||||||
|
Creates content types for all installed models.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.dispatch import dispatcher
|
||||||
|
from django.db.models import get_models, signals
|
||||||
|
|
||||||
|
def create_contenttypes(app, created_models):
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
app_models = get_models(app)
|
||||||
|
if not app_models:
|
||||||
|
return
|
||||||
|
for klass in app_models:
|
||||||
|
opts = klass._meta
|
||||||
|
try:
|
||||||
|
ContentType.objects.get(app_label=opts.app_label,
|
||||||
|
model=opts.object_name.lower())
|
||||||
|
except ContentType.DoesNotExist:
|
||||||
|
ct = ContentType(name=str(opts.verbose_name),
|
||||||
|
app_label=opts.app_label, model=opts.object_name.lower())
|
||||||
|
ct.save()
|
||||||
|
print "Adding content type '%s | %s'" % (ct.app_label, ct.model)
|
||||||
|
|
||||||
|
dispatcher.connect(create_contenttypes, signal=signals.post_syncdb)
|
Loading…
Reference in New Issue