Django

Code

Changeset 7847

Show
Ignore:
Timestamp:
07/06/08 07:29:40 (5 months ago)
Author:
mtredinnick
Message:

Changed ModelFormMetaclass? to have the normal signature for a new method.
Allows extending the metaclass more normally.

Patch from Christian Tanzer. Refs #7617.

Files:

Legend:

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

    r7710 r7847  
    214214 
    215215class ModelFormMetaclass(type): 
    216     def __new__(cls, name, bases, attrs, 
    217                 formfield_callback=lambda f: f.formfield()): 
     216    def __new__(cls, name, bases, attrs): 
     217        formfield_callback = attrs.pop('formfield_callback', 
     218                lambda f: f.formfield()) 
    218219        try: 
    219220            parents = [b for b in bases if issubclass(b, ModelForm)] 
     
    221222            # We are defining ModelForm itself. 
    222223            parents = None 
     224        new_class = super(ModelFormMetaclass, cls).__new__(cls, name, bases, 
     225                attrs) 
    223226        if not parents: 
    224             return super(ModelFormMetaclass, cls).__new__(cls, name, bases, 
    225                     attrs) 
    226  
    227         new_class = type.__new__(cls, name, bases, attrs) 
     227            return new_class 
     228 
    228229        declared_fields = get_declared_fields(bases, attrs, False) 
    229230        opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))