Skip to content

Setting a non-existent attribute fails silently #331

Open
@medwig

Description

@medwig

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'}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions