Skip to content

[Bug 🐞] Pydantic EmailStr Fields fail to work with redis-om find queries #700

@XChikuX

Description

@XChikuX
from redis_om import HashModel, Field
from pydantic import EmailStr, ConfigDict

class Email(HashModel):
    email: EmailStr = Field(
        index=True, title="Email", description="Enter your email address."
    )

    class Meta:
        database = redis_conn

    model_config = ConfigDict(validate_assignment=True, str_strip_whitespace=True)

    @classmethod
    async def migrate(cls):
        await Migrator().run()

The above definition fails when used for a query:

await Email.find(Email.email == email).first()

Gives:

 File "/root/code/backend/app/query.py", line 174, in login                                                                                                                        
   user = await RedisUser.find(RedisUser.email == email).first()                                                                                                                   
                                       ^^^^^^^^^^^^^^^                                                                                                                                     
    File "/root/code/backend/.env/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 271, in __getattr__                                                   
   raise AttributeError(item)                                                                                                                                                      
    AttributeError: email     

redis-om version: v1.0.2-beta
pydantic: v2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions