Django Cheatsheet
19 November, 2022
A cheatsheet for commonly used Django snippets.
Override save() in models
def save(self, *args, **kwargs):
super(ModelClass, self).save(*args, **kwargs)
Timezone Aware datetime
from django.utils import timezone
# UTC
timezone.now()
# In current timezone
timezone.localtime()
String join lists in Django Template
Aggregation
from django.db.models import Avg, Max, Sum
# number of items
MyModel.objects.all().count()
# sum
# get the sum of all the 'total_amount' values of the MyModel object
amount_sum = MyModel.objects.all().aggregate(Sum("total_amount"))
val = amount_sum["total_amount__sum"]
Pass data from view to serializer (Django DRF)
In your APIView in views.py:
# override
def get_serializer_context(self):
context = super().get_serializer_context()
context.update({"request": self.request})
context.update({"myvalue": self.kwargs["my_url_kwarg"]})
# self.kwargs["my_url_kwarg"] is just an example for a common use case
# you can pass anything here
return context
In the corresponding serializer in serializers.py:
addr = self.context.get('myvalue', None)