Advanced Usage
This guide covers advanced SheetAlchemy features and patterns.
Custom Transformers
Create custom data transformation functions:
def clean_phone_number(value):
"""Remove non-digit characters from phone numbers."""
return ''.join(c for c in str(value) if c.isdigit())
phone = StringField(
name="Phone",
post_transform=[clean_phone_number]
)
Model Reload
Reload data from Google Sheets:
# Reload model data
Users.manager.reload_model()
# Now queries will use fresh data
users = Users.manager.filter()
Performance Optimization
Load Policy Selection
# For frequently accessed data
class Config(Model):
class Meta:
load_policy = LoadPolicy.INIT
# For conditionally accessed data
class AuditLog(Model):
class Meta:
load_policy = LoadPolicy.LAZY
Best Practices
Use appropriate load policies
Cache query results when possible
Handle validation errors gracefully
Reload data when sheet updates are expected
Next Steps
/api/model - Complete API reference
Quick Start Guide - Review basics