Чего-то подобного в django я не нашел.
Если ошибка случается в потоке джанги (def exception), то миддлварь срабатывает. Но если же в другом потоке (exception_in_new_thread), то ошибка не ловится.
@lru_cache
def get_cities(id):
METHOD = 'database.getCities'
response = requests.get(
f'{URL}{METHOD}?access_token={TOKEN}&v={VK_API}&country_id={id}'
)
content = response.json()
return [i['title'] for i in content['response']['items']]
def show_cities(request, id, ordered=False):
cities_list = get_cities(id)
if ordered:
cities_list = sorted(cities_list, key=lambda x: x[0])
return render(request, 'countries/cities_list.html', {'cities': cities_list})
rating
, а добавлять аннотацией в момент выборки данных из БД. Если же СУБД надо разгрузить любой ценой, то надо не save
переопределять, а обработчик сигнала pre_save
объявить, в котором записывать это поле. CHUNK_SIZE = 10000 # Подберите наиболее подходящий размер экспериментальным образом
def chunkify(items, chunk_size):
for i in range(0, len(items), chunk_size):
yield items[i:i+chunk_size]
name = 'something'
for chunk in chunkify(hashes, CHUNK_SIZE):
color_hashes = [ColorHashes(name=name , hash=hash, color=color) for hash, color in chunk]
ColorHashes.objects.bulk_create(color_hashes)