timestamps for django models
Project description
Django Timestamps
Adds created_at, updated_at, and/or deleted_at (soft-delete) to django models
Usage
from django.db import models
from django_timestamps.softDeletion import SoftDeletionModel
from django_timestamps.timestamps import TimestampsModel
class Device(SoftDeletionModel, TimestampsModel):
name = models.CharField(max_length=20)
os = models.CharField(max_length=20)
TimestampsModel adds created_at and updated_at fields to the model. This fields are updated automatically
SoftDeletionModel adds deleted_at (soft-delete)
To soft-delete a model you must call delete() function:
device = Device.objects.filter(id=1).first()
device.delete()
To hard-delete a model you must call hard_delete() function:
device = Device.objects.filter(id=1).first()
device.hard_delete()
To restore a model you must call restore() function and use all_objects instead of objects:
device = Device.all_objects.filter(id=1).first()
device.restore()
To get all objects trashed
devices_trashed = Device.all_objects.all().dead()
ModelViewSet for rest_framework:
Adds urls for soft-deleted elements, returns deleted_at:
#Example for devices:
# (get) /devices/trashed/ -> trashed elements, paginated
# (get) /devices/4/get-trashed/ -> get trashed element
# (patch) /devices/4/restore/ -> restore trashed element
from django_timestamps.SoftDeleteViewSet import SoftDeleteViewSet
class DeviceViewSet(viewsets.ModelViewSet, SoftDeleteViewSet):
queryset = Device.objects.all().order_by('id')
serializer_class = DeviceSerializer
querysetTrashed = Device.all_objects.all().dead().order_by('id')
#add extra filters for queryset and querysetTrashed
def full_queryset(self, queryset):
user_id = self.request.query_params.get('user_id', None)
if user_id:
queryset = queryset.filter(user_id=user_id)
return queryset
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-timestamps-0.0.1.tar.gz
.
File metadata
- Download URL: django-timestamps-0.0.1.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
21d2788a89c79c375e7ebd5c7d0a9b272528f9e7140d20a71dbc545be8fbf14d
|
|
MD5 |
52e403db1e2386107c672f94152faec0
|
|
BLAKE2b-256 |
e287ed338a078149fcd3edcd0155bda0e2e1899c0fc7389a0b885308625123fc
|
File details
Details for the file django_timestamps-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: django_timestamps-0.0.1-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
dd1e43d55149020fd3758ddd46109640c46a9ad0df3e2e5213ff5bf4c07d1050
|
|
MD5 |
c4ac9122294ccbb8a11e63cdbae91167
|
|
BLAKE2b-256 |
0baa981378666b473a23af5730cca8933b579f8967ea19efaaffe49ef8dca1e5
|