Skip to content

Instantly share code, notes, and snippets.

@HackoDev
HackoDev / admin.py
Last active June 10, 2023 16:21
Google Maps in Django Admin + PointField: GoogleMapPointWidget
class ShopAdmin(admin.ModelAdmin):
formfield_overrides = {
PointField: {"widget": GoogleMapPointWidget(attrs={
'display_raw': True,
'zoom': 20,
'default_lat': 47.710046956003481,
'default_lng': 42.363638094275998
})},
}
@HackoDev
HackoDev / drf_gis_fields.py
Created November 7, 2019 12:22
DRF GIS Fields
import json
from django.contrib.gis.geos import GEOSGeometry, Point, Polygon, MultiPolygon
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
EMPTY_VALUES = (None, '', [], (), {})
DEFAULT_SRID = 4326
@HackoDev
HackoDev / mixins.py
Last active August 7, 2019 10:27
DRF serializer mapping on particular actions
class SerializerSchemaMixin(object):
"""
Will be used on different actions when we need to use different serializer classes on different actions.
For example:
serializer_schema = {
'create': AnyCreateSerializer,
'retrieve': AnyDetailSerializer,
'update': AnyUpdateSerializer,
'search': AnyListSerializer,
@HackoDev
HackoDev / views.py
Created April 24, 2018 18:10
Django / Celery: Using Celery with transaction atomic
from django.db import transaction
from apps.my_app.tasks import send_email_notification
from apps.my_app.models import MyModel
@transaction.atomic
def example_view(request):
...
obj = MyModel.objects.create(...)
...
@HackoDev
HackoDev / bash
Created January 19, 2018 07:44
S3 clean backups
./clean_backups.sh "20 days" subdirectory
./clean_backups.sh "30 days" daily
./clean_backups.sh "365 days" monthly
@HackoDev
HackoDev / config.js
Last active July 6, 2018 06:22
Upload image file: tinymce / django view
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;