Является ли хорошей практикой в DJANGO создавать весь мой проект вокруг моей пользовательской модели?

#django #django-models #django-cms

#django #django-models #django-cms

Вопрос:

Я не смог найти реальный andwer для того, что мне нужно. Мне нужно создать проект king of complex, и я решил взять на себя огромную задачу сделать это впервые, изучая django в процессе (Да, я знаю, что это не самый умный поступок, но я думаю, что в долгосрочной перспективе это себя оправдает…Надеюсь на это … LOL)

Любым способом, в прошлых проектах, используя.NET, при проектировании моей базы данных я просто использовал followd UML и убедился, что все правила соблюдены. и все было в порядке, так как между базой данных и проектом нет ни одной корреляции…создаю нужную мне базу данных, а затем создаю проект для обмена информацией с тем, что мне нужно оттуда….просто разговариваю с правильным SP….

Нет, с DJANGO, похоже, все наоборот, и я не знаю, соответствует ли модель программирования (логика) Я следовал до сих пор, все еще актуально.

И к делу:

Я создаю две системы одновременно. Система в целом предназначена для добровольной ассоциации реабилитации. Есть интерфейс для общественности и пользователей, а также CMS / backoffice для генерального директора и прочее (многое другое, чем на сайте, но, конечно, веб-сайт получает данные из backoffice, такие как пользовательская идентификация для входа, имя пользователя для publictaions и так далее …).

Итак, что я пытаюсь сказать, это своего рода пользовательский проект, большинство таблиц (моделей?) так или иначе подключаться к пользователю (я написал модели с пометкой questien, потому что при представлении базы данных все находится в таблице user, но не уверен при изменении ее на MTV, как это должно выглядеть на самом деле — из-за соединения и наследования и обратных соединений между моделями)…

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

Я бы с удовольствием сделал это с django, кривая обучения действительно очень крутая, но, надеюсь, я открою глаза и мир для лучших вещей (все уже сделано, и с каждым днем я влюбляюсь в это все больше и больше…ДА ЗДРАВСТВУЕТ ОТКРЫТЫЙ ИСХОДНЫЙ КОД (С ДАВНИХ ПОР MICROSOFT JUNKY) … LOL)

Просто чтобы показать часть таблиц БД (поскольку они находятся в БД ms-sql, я почти уверен, что это неправильно для DJANGO, поскольку мне не кажется логичным сохранять это таким образом, но для чистого SQL это правильный путь): Стрелки указывают на таблицу, в которой находится первичный ключ.

putTypes <- committeePubs -> комитеты <- committeeMemebers -> Пользователи

ArticleGenres <- ArticleInGenres -> Статьи -> Пользователи

Типы изображений <- Изображения -> Галереи -> Пользователи

Ограничения <- пользователи

И так далее….Каждая вещь так или иначе связана с пользователями, независимо от того, является ли пользователь основной таблицей или таблицей поставщика данных….

Теперь, может ли кто-нибудь помочь мне с этим, я знаю, что это массовый запрос, И, конечно, я не ищу никого, кто держал бы меня за руку и вел меня шаг за шагом, просто ищу большой / полный пример, чтобы я мог учиться на нем, со сложным набором таблиц (моделей), и где и когда создавать новое приложение, и когда что-то делать в том же приложении. А также, если возможно, как подключить таблицу Users ко всем другим таблицам (я знаю об импорте и просто использую ее, но это намного сложнее, чем это).

Последнее, извините за ошибки грамматики, не мой родной язык … пытаюсь их уловить, но не всегда могу….

P.S. Другое дело, мои пользовательские модели намного сложнее, чем в django, у меня есть еще много полей, которые должны быть там, что с этим делать? 10x за чтение и помощь, и любой может….И любым способом, если нет, также 10x 🙂

Эрез

Комментарии:

1. Я видел, что уже несколько человек видели мой вопрос и не ответили, если с ним что-то не так (слишком сложно, непонятно, глупо или что-то еще, пожалуйста, дайте мне знать, чтобы я мог изменить его или удалить, если это действительно неправильно), и если это просто потому, что на него не было ответа, это нормально… Просто хочу знать, читаема ли длинная история и стоит ли ее задавать… Настоящий новичок с открытым исходным кодом… Со временем, исходя из того, что я знаю о себе, станет лучше… Снова LOL 10x

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

3. 10x Доминик, но у меня возникла проблема с минимизацией этого вопроса, мне пришлось объяснить все (как я это вижу), если бы я сделал это короче, я не думаю, что люди поняли бы, что мне нужно и чего я хочу. но 10x за ответ…

Ответ №1:

В том, как вы это изобразили, нет ничего особенно неправильного. Однако есть пара моментов.

  • Моделям Django обычно присваиваются имена в единственном числе — Committee , а не Committees .

  • committeeMembers И ArticleInGenres , похоже, связывают таблицы в отношениях «многие ко многим». Если они просто такие и не хранят никакой собственной информации, кроме двух внешних ключей, вы можете полностью их исключить — просто определите ManyToManyField в Committee , указав на User , и Django создаст промежуточную таблицу для вас и будет управлять ею.

  • Ссылка с User на Disability более сложная. На самом деле вам не следует изменять встроенную пользовательскую модель. Наряду с вашим заключительным пунктом о дополнительных полях в User , кажется, что лучше всего определить отдельную UserProfile модель с OneToOneField to User , на которой вы можете хранить дополнительную информацию.

Комментарии:

1. Большое спасибо, Даниэль … отличные моменты. Дело в том, что в каждой таблице есть дополнительные поля… это был просто заголовок таблицы. но я читал, как добавлять поля ко многим-многим моделям. Я думаю, что я получил эту часть. Что касается пользователя, большое вам спасибо. И последнее, что касается приложений, я прочитал руководство DJango по приложениям, но это немного сбивает с толку, когда мне следует добавить другое приложение, а когда использовать существующее приложение. Есть ли собственные статьи и приложение? как насчет комитетов? в какое приложение мне поместить модель UserProfile? как вы решаете подобные вещи? снова 10x…