mirror of
				https://github.com/django/django.git
				synced 2025-10-29 00:26:07 +00:00 
			
		
		
		
	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:
		| @@ -23,8 +23,6 @@ def create_permissions(app, created_models): | ||||
|     if not app_models: | ||||
|         return | ||||
|     for klass in app_models: | ||||
|         if not klass._meta.admin: | ||||
|             continue | ||||
|         ctype = ContentType.objects.get_for_model(klass) | ||||
|         for codename, name in _get_all_permissions(klass._meta): | ||||
|             try: | ||||
|   | ||||
							
								
								
									
										24
									
								
								django/contrib/contenttypes/management.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								django/contrib/contenttypes/management.py
									
									
									
									
									
										Normal file
									
								
							| @@ -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) | ||||
		Reference in New Issue
	
	Block a user