zlodiak
Ноя. 29, 2015 09:17:49
помогите пожалуйста советом, подскажите что почитать по теме и по каким словам гуглить
есть модель, которой в БД соответствует табличка. задача в том чтобы её заполнить до того как приложение начнёт работать. это можно было бы сделать при помощи fixtures, но мне хотелось бы использовать шаблон проектирования Фабрика(или другой подходящий)
возможно ли вообще такое? если да, то в каком месте должен происходить вызов? то есть есть ли в джанге такие функции-инициализаторы, которые выполняются до начала работы приложения?
FishHook
Ноя. 29, 2015 09:54:36
Разумеется, что у вас ничего не получится сделать до начала, потому что до начала еще не существует никаких классов моделей. Попробуйте вызвать свою функцию последней строкой urls.py или settings.py. Или поместить её в __init__.py модуля models. Только вы должны понимать, что в нормальном режиме работы веб-сервер запускает несколько экземпляров джанги, и ваша функция выполнится несколько раз.
zlodiak
Ноя. 29, 2015 10:33:51
FishHook
Разумеется, что у вас ничего не получится сделать до начала, потому что до начала еще не существует никаких классов моделей. Попробуйте вызвать свою функцию последней строкой urls.py или settings.py. Или поместить её в __init__.py модуля models. Только вы должны понимать, что в нормальном режиме работы веб-сервер запускает несколько экземпляров джанги, и ваша функция выполнится несколько раз.
а возможно тогда вообще не использовать models.py, а прописать где-нибудь класс и с него делать объекты и генерить табличку для БД?
ps:
только не спрашивайте зачем мне это нужно
FishHook
Ноя. 29, 2015 10:47:27
Может вам джангу лучше не использовать?
>>>только не спрашивайте зачем мне это нужно
именно спрошу, пока вы не объясните суть телодвижений, нормального решения мы не найдем.
zlodiak
Ноя. 29, 2015 11:26:43
FishHook
Может вам джангу лучше не использовать?>>>только не спрашивайте зачем мне это нужноименно спрошу, пока вы не объясните суть телодвижений, нормального решения мы не найдем.
работодатель выдал тестовое задание. сказал, что суть не в том чтобы решить задачу, а в том, чтобы по максимуму применять шаблоны проектирования. при этом обязательно нужно использовать любой mvc-фреймворк. я выбрал django
задание, грубо говоря, в том, чтобы создать табличку с возможностью фильтрации и сортировки
FishHook
Ноя. 29, 2015 11:33:32
Ну и сделайте это в models.py, там же где определяете обычные модели. Одна из моделей будет результатом работы фабрики.
>>>задание, грубо говоря, в том, чтобы создать табличку с возможностью фильтрации и сортировки
В задании, я так понял, ничего подобного нет, это ваше самостоятельное изобретение.
zlodiak
Ноя. 29, 2015 11:36:38
FishHook
Ну и сделайте это в models.py, там же где определяете обычные модели. Одна из моделей будет результатом работы фабрики. >>>задание, грубо говоря, в том, чтобы создать табличку с возможностью фильтрации и сортировкиВ задании, я так понял, ничего подобного нет, это ваше самостоятельное изобретение.
да, самостоятельное. я пока не представляю как решать задачу, но чувствую, что как минимум надо её разбить на три: генерация данных, вывод на экран, навешивание ajax-виджетов, которые будут менять данные(пинать соответствующие контроллеры)
пока решаю первую. собственно, стандартными способами давно бы уже решил задачу. но это будет не то
FishHook
Ноя. 29, 2015 11:54:32
zlodiak,
зачем вы все это выдумываете?
Думаете работодатель обрадуется, когда вы ему покажите, что с радостью занимаетесь глупостями?
Вам сказали, используйте паттерны, ну так используйте. Сделайте свою фабрику форм, интерфейсы для своих вьюх, придумайте декораторы какие-нибудь, абстрактные классы. Не надо вам лезть в данные, вас об этом не просили.