diff --git a/mongodbforms/documents.py b/mongodbforms/documents.py index 0a432a89..7664ffd6 100644 --- a/mongodbforms/documents.py +++ b/mongodbforms/documents.py @@ -311,6 +311,11 @@ def __new__(cls, name, bases, attrs): opts = new_class._meta = ModelFormOptions( getattr(new_class, 'Meta', None) ) + + if not hasattr(new_class, 'declared_fields'): + if hasattr(new_class, 'base_fields'): + new_class.declared_fields = new_class.base_fields + if opts.document: formfield_generator = getattr(opts, 'formfield_generator', @@ -323,6 +328,7 @@ def __new__(cls, name, bases, attrs): formfield_generator) # make sure opts.fields doesn't specify an invalid field none_document_fields = [k for k, v in fields.items() if not v] + missing_fields = (set(none_document_fields) - set(new_class.declared_fields.keys())) if missing_fields: @@ -333,7 +339,9 @@ def __new__(cls, name, bases, attrs): # Override default model fields with any custom declared ones # (plus, include all the other declared fields). fields.update(new_class.declared_fields) + else: + fields = new_class.declared_fields new_class.base_fields = fields diff --git a/mongodbforms/fieldgenerator.py b/mongodbforms/fieldgenerator.py index f4d842e3..d0d5f9b0 100644 --- a/mongodbforms/fieldgenerator.py +++ b/mongodbforms/fieldgenerator.py @@ -130,7 +130,7 @@ def get_field_label(self, field): return '' def get_field_help_text(self, field): - if field.help_text: + if hasattr(field, 'help_text') and field.help_text: return field.help_text else: return ''