code: def _convert_choices(self, choices):
          
  
          final_choices = []
          for choice in choices:
  
              if isinstance(choice, ChoiceEntry):
                  final_choices.append(choice)
                  continue
  
              original_choice = choice
              if isinstance(choice, six.string_types):
                  if choice == _NO_SUBSET_NAME_:
                      continue
                  choice = [choice, ]
              else:
                  choice = list(choice)
  
              length = len(choice)
  
              assert 1 <= length <= 4, 'Invalid number of entries in %s' % (original_choice,)
  
              final_choice = []
  
              # do we have attributes?
              if length > 1 and isinstance(choice[-1], Mapping):
                  final_choice.append(choice.pop())
              elif length == 4:
                  attributes = choice.pop()
                  assert attributes is None or isinstance(attributes, Mapping), 'Last argument must be a dict-like object in %s' % (original_choice,)
                  if attributes:
                      final_choice.append(attributes)
  
              # the constant
              final_choice.insert(0, choice.pop(0))
  
              if len(choice):
                  # we were given a db value
                  final_choice.insert(1, choice.pop(0))
                  if len(choice):
                      # we were given a display value
                      final_choice.insert(2, choice.pop(0))
              else:
                  # set None to compute it later
                  final_choice.insert(1, None)
  
              if final_choice[1] is None:
                  # no db value, we compute it from the constant
                  final_choice[1] = self.value_transform(final_choice[0])
  
              final_choices.append(final_choice)
  
          return super(AutoChoices, self)._convert_choices(final_choices)
docs: Auto create db values then call super method