コード例 #1
0
 def add_titles(self, model):
     titles = {}
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         key = field.name
         if self.camelcase:
             key = underscore_to_camel_case(key)
         titles[key] = field.verbose_name.title()
     if titles:
         self.models[get_model_name(model)]['titles'] = titles
コード例 #2
0
 def add_descriptions(self, model):
     subtitles = {}
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         if hasattr(field, 'help_text') and field.help_text:
             key = field.name
             if self.camelcase:
                 key = underscore_to_camel_case(key)
             subtitles[key] = force_unicode(field.help_text)
     if subtitles:
         self.models[get_model_name(model)]['subtitles'] = subtitles
コード例 #3
0
 def add_parse(self, model):
     fields = []
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         # Parse DateField and DateTimeFields, but not TimeFields
         if isinstance(field, DateField):
             if self.camelcase:
                 fields.append("'%s'" % underscore_to_camel_case(field.name))
             else:
                 fields.append("'%s'" % field.name)
     if fields:
         self.models[get_model_name(model)]['parse'] = ', '.join(fields)
コード例 #4
0
 def add_validation(self, model):
     rules = {}
     for field in model._meta.fields:
         if is_excluded(model, field.name) or is_readonly(model, field.name) or is_included(model, field.name):
             continue
         key = field.name
         if self.camelcase:
             key = underscore_to_camel_case(key)
         rules[key] = ApiFieldRule(field).rule
     if rules:
         self.models[get_model_name(model)]['rules'] = rules
         if not self.cord:
             self.models[get_model_name(model)]['validate'] = 'validate'
コード例 #5
0
 def add_defaults(self, model):
     name = get_model_name(model)
     for field in model._meta.fields:
         if is_excluded(model, field.name) or is_readonly(model, field.name):
             continue
         default = field.default
         if isinstance(default, type):
             default = default()
         if default is not NOT_PROVIDED and not callable(default):
             if not self.models[name].has_key('defaults'):
                 self.models[name]['defaults'] = {}
             key = field.name
             if self.camelcase:
                 key = underscore_to_camel_case(key)
             self.models[name]['defaults'][key] = default
コード例 #6
0
 def add_choices(self, model):
     choices = {}
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         if hasattr(field, 'choices') and field.choices:
             field_choices = {}
             for choice in field.choices:
                 field_choices[choice[0]] = choice[1]
             key = field.name
             if self.camelcase:
                 key = underscore_to_camel_case(key)
             choices[key] = field_choices
     if choices:
         self.models[get_model_name(model)]['choices'] = choices
コード例 #7
0
 def get_readonly_fields(self, model):
     fields = []
     included_fields = []
     name = get_model_name(model)
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         if is_readonly(model, field.name):
             key = field.name
             if self.camelcase:
                 key = underscore_to_camel_case(key)
             if is_included(model, field.name):
                 included_fields.append(key)
             fields.append(key)
     if field:
         self.readonly_fields[name] = fields
     if included_fields:
         self.readonly_included_fields[name] = included_fields
コード例 #8
0
 def add_instructions(self, model):
     instructions = {}
     for field in model._meta.fields:
         if is_excluded(model, field.name):
             continue
         key = field.name
         if self.camelcase:
             key = underscore_to_camel_case(key)
         message = force_unicode(field.error_messages.get('invalid', field.error_messages.get('invalid_choice', '')))
         default_invalid = default_invalid_choice = None
         for cls in reversed([field.__class__] + get_base_classes(field.__class__)):
             if not hasattr(cls, 'default_error_messages'):
                 continue
             default_invalid = cls.default_error_messages.get('invalid', default_invalid)
             default_invalid_choice = cls.default_error_messages.get('invalid_choice', default_invalid_choice)
         if message and message != default_invalid and message != default_invalid_choice:
             instructions[key] = message
     if instructions:
         self.models[get_model_name(model)]['instructions'] = instructions