Skip to content

Instantly share code, notes, and snippets.

View cansadadeserfeliz's full-sized avatar

Vera cansadadeserfeliz

  • Desparchado.co
  • Bogotá
View GitHub Profile
@cansadadeserfeliz
cansadadeserfeliz / admin.py
Created October 9, 2014 17:05
Make all fields readonly for Django Admin
class StudentAnswersAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
# make all fields readonly
readonly_fields = list(set(
[field.name for field in self.opts.local_fields] +
[field.name for field in self.opts.local_many_to_many]
))
if 'is_submitted' in readonly_fields:
readonly_fields.remove('is_submitted')
@cansadadeserfeliz
cansadadeserfeliz / subtitles_renamer.py
Last active March 9, 2023 00:28
Python Subtitles Renamer
import os
import re
import sys
import argparse
renaming_enabled = False
dir_path = os.path.dirname(os.path.realpath(__file__))
def rename_file(file_name, new_file_name):
@cansadadeserfeliz
cansadadeserfeliz / tests.py
Last active December 28, 2022 09:20
Mock/replace timezone.now() with a custom date in Django unittes
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
from mock import patch
from django.test import TestCase
from django.utils import timezone
class DatesTestCase(TestCase):
@cansadadeserfeliz
cansadadeserfeliz / forms.py
Created May 13, 2014 14:26
Django: limit choices for model form
class ContactForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ContactForm, self).__init__(*args, **kwargs)
self.fields['topic'].queryset = ContactTopic.objects.filter(
is_active=True,
)
class Meta:
model = ContactMessage
@cansadadeserfeliz
cansadadeserfeliz / admin.py
Last active March 10, 2022 12:13
Django: validate inline form in main form
from django.contrib import admin
from product.forms import EquipmentForm
@admin.register(Equipment)
class EquipmentAdmin(admin.ModelAdmin):
form = EquipmentForm
inlines = [
EquipmentGalleryInline,
@cansadadeserfeliz
cansadadeserfeliz / forms.py
Created June 19, 2014 20:35
Django: pass a variable from a form view to a form
class MyForm(forms.ModelForm):
requested_asset = None
def __init__(self, *args, **kwargs):
other_variable = kwargs.pop('other_variable')
super(MyForm, self).__init__(*args, **kwargs)
@cansadadeserfeliz
cansadadeserfeliz / admin.py
Last active May 13, 2020 14:00
Django: how to remove delete action/button from admin
class MyAdmin(admin.ModelAdmin):
def has_delete_permission(self, request, obj=None):
return False
def get_actions(self, request):
actions = super(MyAdmin, self).get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
@cansadadeserfeliz
cansadadeserfeliz / views.py
Last active April 13, 2020 11:00
Django: filter DatetimeField by today (max and min time)
# source: http://stackoverflow.com/questions/1317714/how-can-i-filter-a-date-of-a-datetimefield-in-django
from django.utils import timezone
today_min = datetime.datetime.combine(timezone.now().date(), datetime.time.min)
today_max = datetime.datetime.combine(timezone.now().date(), datetime.time.max)
MyModel.objects.get(date__range=(today_min, today_max))
@cansadadeserfeliz
cansadadeserfeliz / views.py
Last active March 24, 2020 00:55
Django (extreme case): How to raise form invalid inside form_valid method of a FormView (CreateView/UpdateView) and add an error message to not field errors
from django.forms.util import ErrorList
from django import forms
class ContractUpdateView(UpdateView):
model = Contract
template_name = 'contract/contract_form.html'
form_class = ContractForm
def form_valid(self, form):
if self.request.POST.get('finish'):
@cansadadeserfeliz
cansadadeserfeliz / admin.py
Last active April 17, 2019 07:06
Django: add custom button to admin change list view
class BasicAdmin(admin.ModelAdmin):
# ...
def get_urls(self):
urls = super(BasicAdmin, self).get_urls()
my_urls = patterns(
'',
(r'^download_as_xls/$', self.download_as_xls_view)
)
return my_urls + urls