Die am meisten bemerkenswerte App mit definierten Datenbanktabellen ist django.contrib.auth
, die ihr eigenes Auth-Backend in der Datenbank implementiert. Sie könnten wahrscheinlich Auth alle überspringen, wenn Ihre App Firewall ist und Sie allen Menschen vertrauen, die Zugriff darauf haben. Wenn Sie andernfalls einen eigenen Authentifizierungsmechanismus mithilfe der vorhandenen Infrastruktur erstellen möchten, möchten Sie höchstwahrscheinlich ein anderes Back-End verwenden. Wenn Ihr Webserver REMOTE_USER
setzt, können Sie another builtin backend verwenden, und Sie sollten aus und ausgeführt werden. Andernfalls müssen Sie Ihre eigenen implementieren, um auf andere Authentifizierungsquellen zu verweisen.
Von dort müssen Sie Ihre Modelle nur so einrichten, dass sie vorhandene Datenbanktabellen verwenden, anstatt sie selbst erstellen zu lassen. Sie können sehr feine Kontrolle über diese haben, zum Beispiel
class MyModel(django.db.Model):
MyTextField = django.db.TextField(db_column="mytextfield", primary_key=True)
class Meta:
db_table = "my_table"
diese Weise können Sie die genaue Tabelle angeben und Spalten, aus denen jedes Feld eines jeden Modells darstellen soll. Beachten Sie, dass Sie den Primärschlüssel als einen anderen Typ als Integer festlegen können. Eine Einschränkung von Djangos ORM ist, dass jedes Modell genau einen Primärschlüssel haben muss. Wenn Sie also keinen Primärschlüssel für Ihren Tisch haben, fügen Sie entweder einen hinzu oder Sie müssen ohne die Hilfe von djangos ORM auskommen.
Da Sie sich an einen vorhandenen Datensatz binden, der sich möglicherweise auf andere Anwendungen bezieht, werden Sie wahrscheinlich nicht ./manage.py syncdb
verwenden wollen, da dies zu unerwünschten Ereignissen führen kann.
Vielen Dank, das war genau die Antwort, die ich suchte! :-) –