Open
Description
Attempting to set an attribute that doesn't exist has no effect. This makes typos when setting attributes very dangerous. I think this should raise an AttributeError.
from pynamodb.models import Model
from pynamodb.attributes import UnicodeAttribute
class User(Model):
class Meta:
table_name = 'test-user-table'
region = 'us-west-2'
write_capacity_units = 1
read_capacity_units = 1
user_id = UnicodeAttribute(hash_key=True)
name = UnicodeAttribute()
if not User.exists():
User.create_table(wait=True)
user_item = User('user-1', name='John Doe')
user_item.email = '[email protected]'
print(user_item.attribute_values)
User.delete_table()
{'name': 'New Name', 'user_id': 'user-1'}