[Feature Request] Allow default expiry time for a model
Open
Nobody has claimed this yet.
enhancement
- Dominant language
- Python
- Stars
- 1.3k
- Forks
- 128
- PR merge metrics
- No merged PRs in 30d
Description
Currently we are able to set an expiry after saving the model.
class Like(HashModel):
user_id: str
liked_user_id: str
@root_validator()
def assign_pk(cls, values):
values["pk"] = f"{values['user_id']}:{values['liked_user_id']}"
return values
class Meta:
database = redis_conn
like1 = Like(user_id="1", liked_user_id="2")
like1.expire(120)
I'd like all my 'Like' instances to have a default expiry time, instead of defining it each time and updating redis in the background.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the HashModel and expire behavior used in the Like example, then inspect how model Meta configuration is handled. Define how a model-level default expiry should apply to newly saved instances and add coverage showing that Like instances receive the configured expiry without calling expire each time.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, redis
- Domain
- database
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100