mirror of
https://github.com/django/django.git
synced 2025-07-25 14:14:13 +00:00
Fixed #19617 -- Refactored Form metaclasses to support more inheritance scenarios.
Thanks apollo13, funkybob and mjtamlyn for the reviews.
This commit is contained in:
parent
54cd930baf
commit
ac5ec7b8bc
8 changed files with 105 additions and 42 deletions
|
@ -131,12 +131,16 @@ def media_property(cls):
|
|||
return property(_media)
|
||||
|
||||
class MediaDefiningClass(type):
|
||||
"Metaclass for classes that can have media definitions"
|
||||
def __new__(cls, name, bases, attrs):
|
||||
new_class = super(MediaDefiningClass, cls).__new__(cls, name, bases,
|
||||
attrs)
|
||||
"""
|
||||
Metaclass for classes that can have media definitions.
|
||||
"""
|
||||
def __new__(mcs, name, bases, attrs):
|
||||
new_class = (super(MediaDefiningClass, mcs)
|
||||
.__new__(mcs, name, bases, attrs))
|
||||
|
||||
if 'media' not in attrs:
|
||||
new_class.media = media_property(new_class)
|
||||
|
||||
return new_class
|
||||
|
||||
@python_2_unicode_compatible
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue