Python google.appengine.ext.db.StringProperty() Examples

The following are 9 code examples for showing how to use google.appengine.ext.db.StringProperty(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.

You may check out the related API usage on the sidebar.

You may also want to check out all available functions/classes of the module google.appengine.ext.db , or try the search function .

Example 1
Project: personfinder   Author: google   File: prefix.py    License: Apache License 2.0 6 votes vote down vote up
def add_prefix_properties(model_class, *properties):
    """Adds indexable properties to a model class to support prefix queries.
    All properties ending in '_' are extra properties.  The 'properties'
    arguments should be names of existing string properties on the class."""
    for property in properties:
        # This property contains a copy of the entire string normalized.
        setattr(model_class, property + '_n_', db.StringProperty())

        # This property contains just the first character, normalized.
        setattr(model_class, property + '_n1_', db.StringProperty())

        # This property contains just the first two characters, normalized.
        setattr(model_class, property + '_n2_', db.StringProperty())

    # Record the prefix properties.
    if not hasattr(model_class, '_prefix_properties'):
        model_class._prefix_properties = []
    model_class._prefix_properties += list(properties)

    # Update the model class.
    db._initialize_properties(
        model_class, model_class.__name__, model_class.__bases__,
        model_class.__dict__) 
Example 2
Project: jbox   Author: jpush   File: db.py    License: MIT License 5 votes vote down vote up
def get_TextField(kwargs):
    """
    Returns a ``TextField``, applying the ``db.StringProperty`` length limit
    of 500 bytes.
    """
    kwargs['validators'].append(validators.length(max=500))
    return f.TextField(**kwargs) 
Example 3
Project: jbox   Author: jpush   File: db.py    License: MIT License 5 votes vote down vote up
def convert_StringProperty(model, prop, kwargs):
    """Returns a form field for a ``db.StringProperty``."""
    if prop.multiline:
        kwargs['validators'].append(validators.length(max=500))
        return f.TextAreaField(**kwargs)
    else:
        return get_TextField(kwargs) 
Example 4
Project: RSSNewsGAE   Author: liantian-cn   File: db.py    License: Apache License 2.0 5 votes vote down vote up
def get_TextField(kwargs):
    """
    Returns a ``TextField``, applying the ``db.StringProperty`` length limit
    of 500 bytes.
    """
    kwargs['validators'].append(validators.length(max=500))
    return f.TextField(**kwargs) 
Example 5
Project: RSSNewsGAE   Author: liantian-cn   File: db.py    License: Apache License 2.0 5 votes vote down vote up
def convert_StringProperty(model, prop, kwargs):
    """Returns a form field for a ``db.StringProperty``."""
    if prop.multiline:
        kwargs['validators'].append(validators.length(max=500))
        return f.TextAreaField(**kwargs)
    else:
        return get_TextField(kwargs) 
Example 6
Project: googleapps-message-recall   Author: google   File: db.py    License: Apache License 2.0 5 votes vote down vote up
def get_TextField(kwargs):
    """
    Returns a ``TextField``, applying the ``db.StringProperty`` length limit
    of 500 bytes.
    """
    kwargs['validators'].append(validators.length(max=500))
    return f.TextField(**kwargs) 
Example 7
Project: googleapps-message-recall   Author: google   File: db.py    License: Apache License 2.0 5 votes vote down vote up
def convert_StringProperty(model, prop, kwargs):
    """Returns a form field for a ``db.StringProperty``."""
    if prop.multiline:
        kwargs['validators'].append(validators.length(max=500))
        return f.TextAreaField(**kwargs)
    else:
        return get_TextField(kwargs) 
Example 8
Project: python-compat-runtime   Author: GoogleCloudPlatform   File: djangoforms.py    License: Apache License 2.0 5 votes vote down vote up
def get_form_field(self, **kwargs):
    """Return a Django form field appropriate for a string property.

    This sets the widget default to forms.Textarea if the property's
    multiline attribute is set.
    """
    defaults = {}
    if self.multiline:
      defaults['widget'] = forms.Textarea
    defaults.update(kwargs)
    return super(StringProperty, self).get_form_field(**defaults) 
Example 9
Project: python-compat-runtime   Author: GoogleCloudPlatform   File: djangoforms.py    License: Apache License 2.0 4 votes vote down vote up
def save(self, commit=True):
    """Save this form's cleaned data into a model instance.

    Args:
      commit: optional bool, default True; if true, the model instance
        is also saved to the datastore.

    Returns:
      A model instance.  If a model instance was already associated
      with this form instance (either passed to the constructor with
      instance=...  or by a previous save() call), that same instance
      is updated and returned; if no instance was associated yet, one
      is created by this call.

    Raises:
      ValueError if the data couldn't be validated.
    """
    if not self.is_bound:
      raise ValueError('Cannot save an unbound form')
    opts = self._meta
    instance = self.instance
    if instance is None:
      fail_message = 'created'
    else:
      fail_message = 'updated'
    if self.errors:
      raise ValueError("The %s could not be %s because the data didn't "
                       'validate.' % (opts.model.kind(), fail_message))
    cleaned_data = self._cleaned_data()
    converted_data = {}
    propiter = itertools.chain(
      opts.model.properties().iteritems(),
      iter([('key_name', StringProperty(name='key_name'))])
      )
    for name, prop in propiter:
      value = cleaned_data.get(name)
      if value is not None:
        converted_data[name] = prop.make_value_from_form(value)
    try:
      if instance is None:
        instance = opts.model(**converted_data)
        self.instance = instance
      else:

        for name, value in converted_data.iteritems():
          if name == 'key_name':

            continue
          setattr(instance, name, value)
    except db.BadValueError, err:
      raise ValueError('The %s could not be %s (%s)' %
                       (opts.model.kind(), fail_message, err))