не которые мысли вслух :)
Хранение в файловой системе: можно сохранять данные в файлы и хранить их на сервере. Можно связать каждый файл с уникальным идентификатором сессии пользователя, чтобы можно было определить, какой файл соответствует какому пользователю.
Использование временных таблиц: можно создать временную таблицу в базе данных для хранения данных незалогиненных пользователей, используя уникальный идентификатор сессии в качестве ключа. Эту таблицу можно периодически очищать, чтобы удалять ненужные данные.
Важно! Хранить данные в сессиях или куках не РЕКОМЕНДУЮ, так как их размер ограничен.
Еще как вариант:
Может быть хранение данных в NoSQL базе данных, такой как MongoDB или Cassandra. Они предназначены для хранения больших объемов данных и предлагают более гибкую модель данных, чем реляционные базы данных. Также они могут предлагать лучшую производительность при работе с большими объемами данных.
Чтобы использовать NoSQL базу данных в Django, вам может понадобиться установить и настроить плагин Django MongoDB Engine или Django Cassandra Engine. Это позволит вам использовать Django ORM для работы с NoSQL базой данных
И еще момент - если примете решения хранить в файлах, это к тому что я уже писал..., то хранение данных у незалогиненных пользователей в БД через session id, может быть оправданным, если вы считаете, что у вас есть достаточное количество памяти и ресурсов сервера для хранения этих данных. Однако, это может привести к проблемам с производительностью, если вы будете хранить огромные объемы данных у каждого пользователя. Поэтому, если вы хотите хранить большие данные у незалогиненных пользователей, вам, возможно, придется использовать другие способы хранения, например, внешние хранилища данных, такие как Amazon S3 или Google Cloud Storagу, Yandex и т.д.. Или же, вы можете создать временный файл на сервере, который будет хранить данные для каждого пользователя, и удалять его, когда сессия закроется