Django

Code

Changeset 3173

Show
Ignore:
Timestamp:
06/19/06 23:47:07 (2 years ago)
Author:
adrian
Message:

Tightened up code in django.contrib.contenttypes.models.ContentTypeManager?.get_for_model() to use get_or_create()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/contenttypes/models.py

    r2904 r3173  
    99        """ 
    1010        opts = model._meta 
    11         try: 
    12             return self.model._default_manager.get(app_label=opts.app_label, 
    13                 model=opts.object_name.lower()) 
    14         except self.model.DoesNotExist: 
    15             # The str() is needed around opts.verbose_name because it's a 
    16             # django.utils.functional.__proxy__ object. 
    17             ct = self.model(name=str(opts.verbose_name), 
    18                 app_label=opts.app_label, model=opts.object_name.lower()) 
    19             ct.save() 
    20             return ct 
     11        # The str() is needed around opts.verbose_name because it's a 
     12        # django.utils.functional.__proxy__ object. 
     13        ct, created = self.model._default_manager.get_or_create(app_label=opts.app_label, 
     14            model=opts.object_name.lower(), defaults={'name': str(opts.verbose_name)}) 
     15        return ct 
    2116 
    2217class ContentType(models.Model):