ich habe eine Frage zum Model Design beim Django Framework.
Worum gehts?
Jedesmal wenn der User einen "Update"-Button klickt, soll eine Routine(1) = scan ablaufen, welche einen Ordner auf einem Netzlaufwerk nach bestimmten Dateien (PDFs) scannt. Das Ergebnis dieser Routine(1) ist eine Liste Tuple-List aus (number, path, creationtime). Diese Routine(1) existiert bereits in einem eigenen Modul. Eine andere Routine(2) soll diese Liste nun mit der Datenbank abgleichen. Wenn der Eintrag schon existiert -> Ignore ansonsten Eintrag ergänzen.
Frage:
Die Frage ist wie oder eher wo genau implementiert man jetzt am besten Routine(2)?
Ich will irgendwie nicht meine ganzen views mit Model-Code vollpumpen. Schreibe ich einfach eine
eigene neue Klasse in models.py (z.B. Utils) rein und hole mir die dann in die views.py oder gibts da einen Django-Way?
Wie ist da die best practice?
models.py
Code: Alles auswählen
class Drawing(models.Model):
number = models.CharField(max_length=11)
path = models.CharField(max_length=256)
creationdate = models.DateTimeField()
# Dateiname ohne Pfad ausgeben lassen
def __str__(self):
return os.path.split(self.path)[1]
#Pseudo Code
class Utils:
def update_db(project):
updates = scan(project)
for update in updates:
check ob update in Drawing.objects.all()
wenn ja: dann ignore,
sonst: rein damit
return success
Code: Alles auswählen
from .models import Utils as ut
def index(request):
project = 'xyz'
if ut.update_db(project):
return HttpResponse("Update done.")
Wie bekommt man hier denn so hübsch formatieren Code mit Highlighting rein?