Skip to content

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

Open
@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

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions