mirror of
http://git.carcosa.net/jmcbray/brutaldon.git
synced 2025-02-16 23:53:47 -05:00
Foreign keys add magic members
Because when you add one field to a class, you clearly want to add two fields to a class, and there's no need to consider the field you never asked to add to be something other than a field.
This commit is contained in:
parent
0b93eb78f4
commit
0439440f40
@ -29,14 +29,16 @@ class Theme(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
from django.db.models.fields.related_descriptors import ForeignKeyDeferredAttribute
|
||||||
def set_fields(klass):
|
def set_fields(klass):
|
||||||
fields = {}
|
fields = []
|
||||||
for n in dir(klass):
|
for n in dir(klass):
|
||||||
assert n != "_fields"
|
assert n != "_fields"
|
||||||
v = getattr(klass, n)
|
v = getattr(klass, n)
|
||||||
if isinstance(v, models.Field):
|
if not hasattr(v, 'field'): continue
|
||||||
fields.add(n)
|
if not isinstance(v.field, models.Field): continue
|
||||||
|
if isinstance(v, ForeignKeyDeferredAttribute): continue
|
||||||
|
fields.append(n)
|
||||||
setattr(klass, '_fields', fields)
|
setattr(klass, '_fields', fields)
|
||||||
return klass
|
return klass
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user