Einige Schülerinnen und Schüler haben zwar einen Account, haben es aber irgendwie geschafft, ihre Anmeldung abzubrechen, ohne ein Profil anzulegen.
Ich möchte jetzt aus meiner Datenbank die "Karteileichen" löschen, die sich vor längerer Zeit angemeldet haben und das Programm nicht weiter genutzt haben. Diejenigen, die ein Profil angelegt haben kann ich löschen, bei denjenigen, die kein Profil haben, gelingt es mir nicht "FOREIGN KEY constraint failed". Ich habe schon gemerkt, dass ich die Gruppenzuweisung "Schüler" löschen muss. Das reicht aber nicht. Wie bekomme ich raus, welche Beziehung hier noch besteht.
Code: Alles auswählen
def loeschen_alt(req):
auswahl = User.objects.filter(date_joined__lt=date(2023,8,1))
n=0
m=0
nachricht = ""
for a in auswahl:
if (a.date_joined.date() ) == ((a.last_login.date() )):
user = Profil.objects.filter(user = a).first()
aufgaben = Protokoll.objects.filter(user_id = a.id).count()
n +=1
m += aufgaben
nachricht = str(a)
if user == None:
print(a, a.pk)
nachricht += " hat kein Profil und"
else:
nachricht += ": " +user.vorname + " " + user.nachname+ " hat"
nachricht += " sich nur einmal angemeldet, letzter Login: "+ str(a.last_login.date())+ " - Account wurde gelöscht"
a.groups.clear()
#print(nachricht)
a.delete()
nachricht = str(n) + " Accounts mit " + str(m) + " Aufgaben gelöscht"
return HttpResponse(nachricht)