Я недавно начал работать с Django. Я работаю над существующим сайтом на основе Django/Python. В частности, я реализую некоторые функции для создания и отображения PDF-документа при ударе определенного URL-адреса. У меня есть запись в файле URL-адресов приложения, который направляется к функции в файле представлений, а генерация PDF работает нормально.Организация кода Django
Однако функция просмотра довольно большая, и я хочу извлечь код где-нибудь, чтобы мой взгляд был как можно более тонким, но я не уверен в лучшем/правильном подходе. Возможно, мне нужно будет сгенерировать другие PDF-файлы со временем, так что было бы целесообразно создать приложение «pdfs» и разместить там код? Если да, то следует ли в модели или в представлении?
В среде PHP/CodeIgniter, например, я бы поместил код в модель, но модели, похоже, тесно связаны с таблицами базы данных в Django, и для этого мне не нужны никакие функциональные возможности.
Любые указатели/советы от более опытных пользователей Django будут оценены по достоинству.
Благодаря
Модель должна использоваться только для базы данных. Трудная работа должна быть сделана с точки зрения. Хорошей практикой является создание одного приложения для каждой задачи. Если у вас есть только одна задача (создание pdf), и ваше представление все еще слишком велико, вы можете просто создать файл create_pdf.py и выполнить там тяжелую работу. –
Спасибо, так хорошо делать тяжелую работу в представлении? Представление в Django действует как контроллер в других рамках, и мой инстинкт состоит в том, чтобы максимально упростить обработку бизнеса из контроллеров и делегировать работу моделям. –
Да представлениями являются контроллеры. Я стараюсь вставить как можно больше функциональности в модели, чтобы обойти «несоответствие объектно-реляционного импеданса» – Pynchia