Самым заметным приложением с определенными таблицами базы данных является django.contrib.auth
, которое реализует собственный аутентификационный бэкэнд в базе данных. Вероятно, вы могли бы пропустить авторизацию все вместе, если ваше приложение защищено брандмауэром и вы доверяете всем людям, которые имеют к нему доступ. Если в противном случае вы хотите создать свой собственный механизм аутентификации с использованием существующей инфраструктуры, вы, скорее всего, захотите использовать другой бэкэнд. Если ваш веб-сервер устанавливает REMOTE_USER
, вы можете использовать другой встроенный бэкэнд , и вы должны быть выключены и работать. В противном случае вам придется реализовать свой собственный, чтобы ссылаться на другие источники аутентификации.
Оттуда вам нужно только настроить свои модели на использование существующих таблиц базы данных, а не позволять им создавать свои собственные. Вы можете очень хорошо контролировать это, например
class MyModel(django.db.Model):
MyTextField = django.db.TextField(db_column="mytextfield", primary_key=True)
class Meta:
db_table = "my_table"
Таким образом, вы можете указать точную таблицу и столбцы, из которых будет представлено каждое поле каждой модели. Обратите внимание, что Вы можете установить первичный ключ как тип, отличный от целого числа. Ограничение ORM в django состоит в том, что каждая модель должна иметь ровно один первичный ключ. Поэтому, если у вас нет первичного ключа для вашей таблицы, либо добавьте его, либо вам придется обходиться без помощи ORM django.
Кроме того, поскольку вы подключаетесь к существующему набору данных, возможно, связанному с другими приложениями, вы вряд ли захотите использовать ./manage.py syncdb
, поскольку это может привести к нежелательным действиям.