Re: Создание динамической модели их xml, yaml файла

680 views
Skip to first unread message

Cykooz

unread,
Nov 14, 2012, 2:10:10 AM11/14/12
to django-...@googlegroups.com
Очень задачка похож на одно тестовое задание, которое мне дали при собеседовании :) Вам случайно не для той же цели?


14 ноября 2012 г., 10:47 пользователь Виталий Попов <sk1f...@gmail.com> написал:
Привет Всем! Подскажите как создать модель из файла xml. Пытался сделать это через десерелиз:
input = open("base.xml", "r")
    for ds in serializers.deserialize("xml", input.read()):
        ds.object
но не получилось.


--
 
 

Виталий Попов

unread,
Nov 14, 2012, 2:26:12 AM11/14/12
to django-...@googlegroups.com, cyk...@gmail.com
Да вы правы, был уверен что у меня все быстро получиться, но почему то не могу осилить.

Сергей Панов

unread,
Nov 15, 2012, 9:07:09 AM11/15/12
to django-...@googlegroups.com
Поделитесь кто это спрашивает и как выглядит  полное условие задачи.

15 ноября 2012 г., 17:51 пользователь zae bee <zaeb...@gmail.com> написал:
мое решение этой заадчи, для этого же собеседования,)
https://github.com/zaebee/exam/blob/master/apps/dynamic_models/models.py

среда, 14 ноября 2012 г., 11:26:12 UTC+4 пользователь Виталий Попов написал:
Да вы правы, был уверен что у меня все быстро получиться, но почему то не могу осилить.

--
 
 



--
Best Regards, Panov Sergey

zae bee

unread,
Nov 15, 2012, 3:07:32 PM11/15/12
to django-...@googlegroups.com
Я честно говоря, не помню - ибо было год назад. Может быть, ТС ответит на ваш вопрос.,

четверг, 15 ноября 2012 г., 18:07:12 UTC+4 пользователь Sergey написал:

Cykooz

unread,
Nov 16, 2012, 4:51:24 AM11/16/12
to django-...@googlegroups.com
Примерно так - реализовать приложение на джанге, которое свои модели создаёт динамически из какого либо человеко-читаемого XML, YAML или JSON. При этом должны нормально работать с такими моделями миграции через South и в джанговской админке они должны быть доступны.


16 ноября 2012 г., 0:07 пользователь zae bee <zaeb...@gmail.com> написал:
--
 
 

Владимир Прохода

unread,
Nov 16, 2012, 4:53:03 AM11/16/12
to django-...@googlegroups.com
Интересно, до сих пор ищут?


2012/11/16 Cykooz <cyk...@gmail.com>
--
 
 



--
Если есть трудное дело, поручите его лентяю: он найдет более легкое решение.

Pavel Reznikov

unread,
Nov 16, 2012, 5:02:40 AM11/16/12
to django-...@googlegroups.com
Но зачем? Чем питон не человекочитаемый язык?

//wbr Pavel Reznikov <pashka....@gmail.com>

-- Sent from my arithmometer

--
 
 

Nikolay Fominykh

unread,
Nov 16, 2012, 5:04:04 AM11/16/12
to django-...@googlegroups.com
Тот кто может это сделать, скорее всего не пойдет в компанию, которая на собеседовании это спрашивает. :)


16 ноября 2012 г., 13:53 пользователь Владимир Прохода <vladimi...@gmail.com> написал:

--
 
 

Виталий Попов

unread,
Nov 16, 2012, 5:06:30 AM11/16/12
to django-...@googlegroups.com


пятница, 16 ноября 2012 г., 14:02:46 UTC+4 пользователь Pavel Reznikov написал:
Пока занимаюсь этим тестовым заданием уже у троих людей типа такого задание от заказчика. Есть ямл файл в котором содержаться модели данных с которыми надо работать, типа в ямл содержиться информация авиокампании о билетах и регистрируется.
 

Cykooz

unread,
Nov 16, 2012, 5:12:36 AM11/16/12
to django-...@googlegroups.com
Не факт, что это ценная в практическом смысле задача - это просто проверка знания и умения их использовать. По ТЗ даже было не обязательно реализовывать полный набор типов полей (что собственно и видно из моей реализации).
При этом задачка вполне уникальна, и ответ в гугле просто так не найдёшь (собственно сам этот тред - доказательство ценности этого тестового задания)


16 ноября 2012 г., 14:02 пользователь Pavel Reznikov <pashka....@gmail.com> написал:
--
 
 

George Regentov

unread,
Nov 16, 2012, 5:20:33 AM11/16/12
to django-...@googlegroups.com, Cykooz
О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫?

16.11.2012 13:51, Cykooz О©╫О©╫О©╫О©╫О©╫:
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ XML, YAML О©╫О©╫О©╫ JSON. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ South О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.


16 О©╫О©╫О©╫О©╫О©╫О©╫ 2012О©╫О©╫., 0:07 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ zae bee <zaeb...@gmail.com> О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫.,

О©╫О©╫О©╫О©╫О©╫О©╫О©╫, 15 О©╫О©╫О©╫О©╫О©╫О©╫ 2012О©╫О©╫., 18:07:12 UTC+4 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ Sergey О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫.

15 О©╫О©╫О©╫О©╫О©╫О©╫ 2012О©╫О©╫., 17:51 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ zae bee <zaeb...@gmail.com> О©╫О©╫О©╫О©╫О©╫О©╫О©╫:

О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫,)
https://github.com/zaebee/exam/blob/master/apps/dynamic_models/models.py

О©╫О©╫О©╫О©╫О©╫, 14 О©╫О©╫О©╫О©╫О©╫О©╫ 2012О©╫О©╫., 11:26:12 UTC+4 О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫:
О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
--
О©╫
О©╫



--
Best Regards, Panov Sergey
--
О©╫
О©╫

--
О©╫
О©╫

Pavel Reznikov

unread,
Nov 16, 2012, 5:21:41 AM11/16/12
to django-...@googlegroups.com
А, работа ради работы. Это как плац ломом мести.

Зачем вообще такие вопросы на собеседовании? Почему бы просто не давать кусок реальной задачи, которую потом соискатель будет решать...


//wbr Pavel Reznikov <pashka....@gmail.com>

-- Sent from my arithmometer

--
 
 

Cykooz

unread,
Nov 16, 2012, 5:35:43 AM11/16/12
to django-...@googlegroups.com
Ну лично мне задачка понравилась, выполнял её с удовольствием.


16 ноября 2012 г., 14:21 пользователь Pavel Reznikov <pashka....@gmail.com> написал:
--
 
 

Nikolay Fominykh

unread,
Nov 16, 2012, 5:42:36 AM11/16/12
to django-...@googlegroups.com
Я бы давал такую задачку вместе с остальными, и отсеивал тех, кто её решил. Занятие ерундой - вредная штука для реальных задач. И естественно со стороны кандидата тоже должен возникнуть вопрос "Вы правда так делаете?".  

Сама идея динамически менять модель - это тоже самое, что согласится жить в мире, где законы физики каждый день новые. 


16 ноября 2012 г., 14:21 пользователь Pavel Reznikov <pashka....@gmail.com> написал:
--
 
 

Владимир Прохода

unread,
Nov 16, 2012, 5:47:43 AM11/16/12
to django-...@googlegroups.com
Узнать о том как создаются классы моделей внутри джанго весьма полезный опыт. Хорошее задание. 


2012/11/16 Nikolay Fominykh <niko...@gmail.com>
--
 
 

Pavel Reznikov

unread,
Nov 16, 2012, 6:05:53 AM11/16/12
to django-...@googlegroups.com
Классы моделей декларируются. А чтоб решить эту задачу достаточно прочитать два абзаца о метаклассах, что никак не определяет умение решать прикладные задачи, как по мне. А про метаклассы достаточно просто спросить - человек либо знает что это, либо нет


//wbr Pavel Reznikov <pashka....@gmail.com>

-- Sent from my arithmometer

--
 
 

Cykooz

unread,
Nov 16, 2012, 6:19:23 AM11/16/12
to django-...@googlegroups.com
Тут вообще никакого понимания метаклассов не нужно - просто уметь пользоваться встроенной функцией type() для динамического создания классов и знать, что  добавить что то в питоновский модуль можно не только путём добавления текста в его исходный код, но и динамически во время выполнения программы.


16 ноября 2012 г., 15:05 пользователь Pavel Reznikov <pashka....@gmail.com> написал:
--
 
 

Nikolay Fominykh

unread,
Nov 16, 2012, 6:20:32 AM11/16/12
to django-...@googlegroups.com
Чем полезен этот опыт? Умение гуглить, копаться в открытом коде? 

Хуже юниора - юниор с инициативой.  


16 ноября 2012 г., 14:47 пользователь Владимир Прохода <vladimi...@gmail.com> написал:
--
 
 

Pavel Reznikov

unread,
Nov 16, 2012, 7:12:37 AM11/16/12
to django-...@googlegroups.com
Использование манкипатчинга для решения такой задачи - это маркер, по которому можно отсеивать быдлокодеров.


//wbr Pavel Reznikov <pashka....@gmail.com>

-- Sent from my arithmometer

--
 
 

Cykooz

unread,
Nov 16, 2012, 7:56:22 AM11/16/12
to django-...@googlegroups.com
В данном случае речь не о внешнем воздействии на модуль, а про то что код внутри модуля добавляет в этот же модуль новые классы при первом его импорте.


16 ноября 2012 г., 16:12 пользователь Pavel Reznikov <pashka....@gmail.com> написал:
--
 
 

Serge Matveenko

unread,
Nov 19, 2012, 2:16:10 AM11/19/12
to django-...@googlegroups.com
2012/11/16 Cykooz <cyk...@gmail.com>:

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

А кто сказал, что в этот же? Эх, задача, на самом деле, действительно
для метамага.

Когда мне нужны были динамические модели (генерация из админки, а не
из xml), еще до того как появились всякие CouchDB и MongoDB, мы
сделали это шаблонами файлов models.py, автоматической миграцией и
програмной перезагрузкой приложения. И эта наркомань даже работала. И
никаких метаклассов, кстати.


--
Serge Matveenko
mailto: se...@matveenko.ru
github: http://lnkfy.com/1
linkedin: http://lnkfy.com/S

Mikhail Kashkin

unread,
Nov 16, 2012, 10:40:35 AM11/16/12
to django-...@googlegroups.com
Вообще-то вполне стандартная задача на понимание метапрограммирования и джанго в частности. Не знаю о каком заказчике речь и что там у вас за фанатская тусовка вокруг него собралась, но идея так проверить знания очень понравилась. Случайно или нет, но ребята придумали хорошее задание.

2012/11/16 Nikolay Fominykh <niko...@gmail.com>
Чем полезен этот опыт? Умение гуглить, копаться в открытом коде? 

Хуже юниора - юниор с инициативой.  



--
Mikhail Kashkin

Виталий Попов

unread,
Nov 20, 2012, 11:54:20 PM11/20/12
to django-...@googlegroups.com
Мне тоже задание понравилось. Да и не какой тусовки нет просто разные люди разные мнения.

пятница, 16 ноября 2012 г., 19:40:35 UTC+4 пользователь Mikhail Kashkin написал:

Alexander Kuzkin

unread,
Jan 25, 2013, 1:27:16 AM1/25/13
to django-...@googlegroups.com
Тестовое задание тоже работа и его тоже на оплачивать. Только обычно оплачивает ее соискатель.

25.01.2013, в 1:59, Dolbunov Dmitry <dolb...@gmail.com> написал(а):

> ps. Тут кто-то писал, что лучше давать часть реального задания. Я считаю это некорректно, т.к. это уже работа и ее нужно оплачивать.

sk1f sk1f

unread,
Jan 25, 2013, 1:44:22 AM1/25/13
to django-...@googlegroups.com
Тут просто обсуждалось кто как его выполнил но не кто из тех кто выполнил при помощи сообщества к вам его не отправил, все по честному. Я взял задание, наткнулся на некоторое не знание обсудили на форуме, пополнил свои знания и вам результат не отправил т.к. считаю это не честным.


25 января 2013 г., 10:27 пользователь Alexander Kuzkin <xbe...@gmail.com> написал:
Тестовое задание тоже работа и его тоже на оплачивать. Только обычно оплачивает ее соискатель.

25.01.2013, в 1:59, Dolbunov Dmitry <dolb...@gmail.com> написал(а):

> ps. Тут кто-то писал, что лучше давать часть реального задания. Я считаю это некорректно, т.к. это уже работа и ее нужно оплачивать.

--





--


С Уважением Попов Виталий.

Serge Matveenko

unread,
Jan 25, 2013, 3:43:22 AM1/25/13
to django-...@googlegroups.com
2013/1/25 Dolbunov Dmitry <dolb...@gmail.com>:
> Тсщерт, я всем раздаю тестовое задание, а оказывается все уже давно выложено
> и обсуждено. ;( Жаль конечно, будем придумывать новое. Придумаем что-нибудь
> интересное.
>
> Заранее сорри за рекламу, если кому-то будет интересно новое тестовое
> задание, то пишите мне в скайп dmitry.dolbunov. Ну или сайт нашей команды
> smyt.ru ;)
>
> ps. Тут кто-то писал, что лучше давать часть реального задания. Я считаю это
> некорректно, т.к. это уже работа и ее нужно оплачивать.

А я обычно даю маленькие задачку и смотрю как человек при мне пишет
решение на бумажке. Или очень маленькое и прошу написать максимум
способов решения.

Ну, например, из списка, содержащего строки и None, сделать другой
список, содержащий только длины строк, без пропусков.

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

P.S.: Дима, привет! Остальным могу порекомендовать Дмитрия, как
честного и вполне вменяемого работодателя, побольше бы таких.
Reply all
Reply to author
Forward
0 new messages