Bestehende Datenbank View in Django nutzen?

Django, Flask, Bottle, WSGI, CGI…
Antworten
gospat83
User
Beiträge: 9
Registriert: Dienstag 21. September 2021, 14:25

Hallo zusammen,

ich habe gerade mein erstes Django Projekt gestartet und stoße nun auf die ersten Herausforderungen.

Was habe ich bisher gemacht?
  • Django frisch installiert
  • SQL Server DB angelegt
  • Migrations durchgeführt
Mein Problem ist folgendes. Ich kann nicht einfach nur neue Models erzeugen, sondern ich benötige fast ausschließlich Infos aus einer bereits bestehenden SQL Server Datenbank. Ich kann per DB-Link von meiner "Django DB" auf diese Datenbank zugreifen. Ich habe mir zum ersten Test eine View auf Daten dieser DB in meiner "Django DB" erstellt.

Dazu habe ich nun 2 Fragen:
  • Wie integriere ich diese Daten nun in ein Model?
  • Wie kombiniere ich diese später mit anderen Daten, die ich selbst in Django erzeuge?
Zu Punkt zwei, läuft das einfach über Schlüsselbeziehungen auf der DB? Ich versuche mal mein Szenario genauer zu beleuchten. Sagen wir in meiner View existieren 3 Spalten:
  • ProjektNr
  • ProjektName
  • Verantwortlicher
Diese Daten möchte ich später anzeigen (und filtern) lassen im Frontend. Zusätzlich soll der Anwender jetzt aber z.B. einen Status für jedes Projekt setzen können anhand einer "Ampellogik" (rot, gelb, grün). Wie mache ich das? Definiere ich ein neues Model dafür und füge das Feld ProjektNr als Schlüssel hinzu? Kann ich die Infos aus beiden Models dann später in einer einzigen Ansicht im Frontend darstellen, also in etwa wie folgt:

ProjektNr | ProjektName | Verantwortlicher | Status

123 | 123 Name | Klaus | grün
456 | 456 Name | Peter | gelb
...

Viele Grüße
gospat
Benutzeravatar
grubenfox
User
Beiträge: 530
Registriert: Freitag 2. Dezember 2022, 15:49

https://docs.djangoproject.com/en/5.1/h ... databases/

Wobei man laut https://docs.djangoproject.com/en/5.1/r ... #inspectdb
noch auf den Schalter --include-views achten sollte....

Aber das ist von meiner Seite aus jetzt nur die Theorie. Ich bin bei meinen Django-Projekten auch immer nur den Weg mit einer komplett neuen DB gegangen und das ist schon einige Zeit her (so zu Django-3.x-Zeiten)
Antworten