Am working on GAE,GAE datastore and python.
This is my dbmodel.py,
class Customer(db.Model):
name = db.StringProperty(required=True)
phone = db.
There's good Unique model available in webapp2:
For example, suppose we have a model
User
with three properties that must be unique across a given group:username
,auth_id
andclass User(model.Model): username = model.StringProperty(required=True) auth_id = model.StringProperty(required=True) email = model.StringProperty(required=True)
To ensure property uniqueness when creating a new
User
, we first createUnique
records for those properties, and if everything goes well we can save the newUser
record::@classmethod def create_user(cls, username, auth_id, email): # Assemble the unique values for a given class and attribute scope. uniques = [ 'User.username.%s' % username, 'User.auth_id.%s' % auth_id, 'User.email.%s' % email, ] # Create the unique username, auth_id and email. success, existing = Unique.create_multi(uniques) if success: # The unique values were created, so we can save the user. user = User(username=username, auth_id=auth_id, email=email) user.put() return user else: # At least one of the values is not unique. # Make a list of the property names that failed. props = [name.split('.', 2)[1] for name in uniques] raise ValueError('Properties %r are not unique.' % props)
This is the only way to transactionally check the uniqueness.
https://webapp-improved.appspot.com/_modules/webapp2_extras/appengine/auth/models.html#Unique