Как мне создать несколько моделей с помощью django?

#django

#django

Вопрос:

Я использую geodjango для создания хранилища данных, и у меня есть базовая модель для хранения содержимого файла формы. Я хочу иметь несколько таблиц с атрибутами , генерируемыми » на лету » . Есть таблицы, которые имеют дело с пользователем, и одна таблица, которая имеет дело с каждым файлом формы.

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

Таким образом , если я хочу иметь несколько таблиц , должен ли я создать несколько моделей или несколько классов ?

Если несколько моделей , то как мне связать их с представлением?

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

1. Это звучит так, как будто вы путаете «модели. py’ с классами моделей внутри файла.

Ответ №1:

Модель — это просто программное представление таблицы базы данных. Существует взаимно однозначная корреляция, то есть для каждой модели вы получаете таблицу базы данных.

Концепция моделей отделена от концепции представлений. Представления — это просто методы, которые отвечают на HTTP-запросы. В любом представлении вы можете импортировать и использовать любую модель; вы просто импортируете модель и делаете с ней все, что вам заблагорассудится.

Похоже, вы совсем новичок в Django и всей концепции архитектуры MVC (Model-View-Controller) в целом. Вам следует потратить некоторое время на чтение книги по Джанго; она доступна бесплатно онлайн. Сосредоточьтесь, в частности, на главах, посвященных моделям и представлениям. Документация Django немного более высокого уровня, но содержит огромное количество информации.

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

1. Вероятно, нам следует уточнить, что, строго говоря, нет однозначной корреляции между моделями и таблицами. Например, если у вас есть две модели, одна с ManyToManyField для другой, у вас будет таблица для каждой из ваших моделей и таблица ссылок: 2 модели, 3 таблицы.

2. В каком-то смысле, да. В другом есть неявное Model , которое соотносится с третьей таблицей. Просто вы не определяете это: Django определяет. Тем не менее, я намеренно упрощал.

3. Я просто подумал, что должен упомянуть об этом для ясности.