Skip to content

Find operation on datetime field raises error --> argument of type 'datetime.datetime' is not iterable #199

Open
@msarm

Description

@msarm

Find operation on datetime field raises error --> argument of type 'datetime.datetime' is not iterable

import datetime
from typing import Optional

from redis_om import Field, HashModel, Migrator, get_redis_connection

# This Redis instance is tuned for durability.
REDIS_DATA_URL = "redis://localhost:6380"

class Person(HashModel):
    first_name: str = Field(index=True)
    last_name: str = Field(index=True)
    birth_datetime: datetime.datetime = Field(index=True)

# set redis connection
Person.Meta.database = get_redis_connection(url=REDIS_DATA_URL,
                                                  decode_responses=True)
# apply migrations
Migrator().run()

# First, we create a new `person` object:
person = Person(
    first_name="John",
    last_name="Smith",
    birth_datetime = datetime.datetime(2002, 4, 9, 9, 13)

)

# print globally unique primary key
print(person.pk)

# save person to Redis
person.save()

# get by primary key (WORKS!!!)
Person.get(person.pk)

# Find all person with first name "John" - WORKS!!
Person.find(Person.first_name == "John").all()

# find all person with birth date time with date as string - NOT WORKING!! ( Returns empty list )
Person.find(Person.birth_datetime == '2002-04-09 09:13').all()

# find all person with birth date time with date type - Not working!! ( Error: argument of type 'datetime.datetime' is not iterable )
Person.find(Person.birth_datetime == datetime.datetime(2002, 4, 9, 9, 13)).all()

Metadata

Metadata

Assignees

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