как создать модели Django, которые не сопоставляются с таблицей базы данных

Я хочу создать модель, которая не отображается в таблице базы данных. Вместо этого остается в памяти как объект Python.

На самом деле, эта модель должна представлять нормализованные данные из многих других моделей с табличным отображением.

В других моделях хранятся данные, которые можно редактировать несколько раз за один день. Из-за этих множественных правок мне не нужна модель с отображением таблиц, которая выполняет нормализацию / вычисления и сохраняет их в базе данных, поскольку эти сохраненные данные могут сразу устареть.

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

Редактировать после ответа синтоиста:

@Shintoist Спасибо за прояснение ситуации и предоставление удобного подхода. Я только что реализовал это, но в итоге попал в маленькую стену :)

@skirmantas: Да, вычисления в отдельном объекте. Этот объект передается в настраиваемые представления.

Проблема: Одна проблема заключается в том, что в admin.py я создал класс modeladmin для этого объекта (который не наследует models.Model), поэтому мои пользовательские представления могут перекрывать представление списка изменений и представление изменений. Затем я использую admin.site.register () для регистрации этого модельного класса и modeladmin. Но поскольку эта модель вообще не является моделью django (поскольку это независимый объект python в памяти), admin.site.register () выдает ошибку «объект типа не повторяется». Я не хочу использовать url.py вместо admin.py, так как он предназначен для внешнего интерфейса, в то время как я пытаюсь перехитрить backend-admin.

6
задан sysasa 10 November 2010 в 17:59
поделиться