2017-01-10 5 views
0

В настоящее время я создаю приложение Django, которое использует одноэлементный объект. Я хочу сохранить этот объект как переменную CBV, потому что я не хочу инициализировать его для каждого вызова get.Создание метода CBV Django для получения метода экземпляра

Мой вопрос вкратце - можете ли вы получить функцию получения CBV методом экземпляра вместо метода class? И если да, могу ли я сохранить переменную как переменную экземпляра?

EDIT - Лучшее объяснение на мой вопрос:

Я создал класс, который обрабатывает упорядоченное соединение с электронным Measurment инструментом. Этот класс должен иметь только 1 экземпляр (singleton), если будет создан другой экземпляр, утечка памяти приведет к сбою python.

Я хочу использовать его с Джанго следующим образом:

Получить запрос на определенный URL-адрес - адрес> мнения задаст экземпляр класса инструмента для data-> Instance реагирующего с данными - > View возвращает JsonResponse с данными.

Я думаю, что лучший способ сделать это делает метод ПОЛУЧИТЕ ОЦК (в которой связано с URL, им получать от) метод экземпляра, но его не такая хорошая практика ..

Как я должен сделай это?

+0

'get' не метод класса? .. – Sayse

+1

Вы могли бы как-то, но почему в мире вы хотите это сделать. – hspandher

+0

@hspandher Мне нужно использовать определенный объект класса, и если get не является методом экземпляра, мне придется повторно инициализировать объект для каждого get (и когда я его повторно инициализирую, плохо потеряю сохраненные данные) –

ответ

0

Как я уже говорил, getявляется экземпляром метода.

Но вы вводите в заблуждение здесь. Класс должен нести только одну ответственность. Класс представления несет ответственность за ответ на запрос и возвращение ответа; это совсем не связано с подключением к инструменту. Это должен быть отдельный класс, который создается на уровне модуля и используется в классе представления.

Смежные вопросы