Как кэшировать таблицы базы данных в Django?

Мое приложение требует повторяющегося поиска в одних и тех же таблицах. Обычно это должно быть спроектировано с внешним ключом для ссылки из таблицы1 в таблицу2, но нет никаких внешних ключей (да, ДБ спроектирована плохо).

представления выглядят следующим образом:

class FileDownloaderSerializer(APIView):

    def get(self, request, **kwargs):

            filename = "All-users.csv"
            f = open(filename, 'w')                
            datas = Userstable.objects.using(dbname).all()                
            serializer = UserSerializer( datas, context={'sector': sector}, many=True)                                        
            df=serializer.data

        df.to_csv(f, index=False, header=False)
        f.close()

        wrapper = FileWrapper(open(filename))
        response = HttpResponse(wrapper, content_type='text/csv')
        response['Content-Length'] = os.path.getsize(filename)
        response['Content-Disposition'] = "attachment; filename=%s" % filename

        return response

это мой serializers.py

class UserSerializer(serializers.ModelSerializer):
   class Meta:
        model = Userstable
        fields = _all_
   section=serializers.SerializerMethodField()

   def get_section(self, obj):
        return section.objects.using(dbname.get(pk=obj.sectionid).sectionname

   department =serializers.SerializerMethodField()
   def get_department(self, obj):
        return section.objects.using(dbname).get(pk=obj.deptid).deptname

Есть много таблиц, более 5 таблиц, здесь я показываю только 2 из них. В основном в csv нам нужно импортировать представляемые данные. Но в главной таблице хранится только id данных, нам нужно получить фактические представляемые данные из вторичной таблицы, отсюда и поиск.

из основ программирования. Я понимаю, что python обычно кэширует переменные, которые были объявлены при запуске процесса, так что программе не нужно проходить через объявления каждый раз, когда переменная вызывается. но в моем процессе, приложение продолжает делать запросы. Я проследил весь SQL с помощью панели инструментов отладки django и получил 500 запросов, 455 - это те же самые запросы.

вот скриншот из django_debug_toolbar

sql queries reported

Итак, каковы точные способы кэширования таблицы из БД? w

Вернуться на верх