Seite 1 von 1

user authentication

Verfasst: Freitag 23. September 2022, 16:45
von Pitwheazle
Ich habe jetzt (im Großen und Ganzen) 13 von meinen 35 Kategorien fertig und muss über die nächsten Stufen nachdenken. Wenn ich 14 Kategorien fertig habe, möchet ich mich dranmachen, das Projekt hochzuladen.
Zunächst muss ich aber die Benutzerauthentifizierung hinbekommen. Ich habe bisher zwei Gruppen angelegt (Schüler und Lehrer) und zwei Schüleraccounts angelegt. Ich kann diese auch schon ein und ausloggen. Was ich leider noch nicht begriffen habe, ist, wie ich jetzt den Zugang regele.
Bild
Egal auf welche Kategorie der user in diesem Startfenster klickt, er wird auf den view "main" geleitet und hier möchte ich überprüfen, ob der user eingeloggt ist oder nicht und ihn nur dann weiterleiten und ansonsten eine entsprechende Meldung ausgeben. Wahrscheinlich ist das gar nicht so schwer, ich bekomme es aber nicht hin.
Der Anfang des Codes:

Code: Alles auswählen

def main(req, slug):   
    kategorie = get_object_or_404(Kategorie, slug = slug)
    kategorie_id = kategorie.id
    user = get_fake_user() 
    if req.method == 'POST':  
        protokoll = Protokoll.objects.get(pk = req.session.get('protokoll_id'))
        ...
wie ihr seht, arbeite ich noch mit einem "Fake_user" (der Code ist noch von @whitie):

Code: Alles auswählen

def get_fake_user():
    return Schueler.objects.all().first()
Außerdem muss ich feststellen, dass ich das mit den sessions noch nicht verstanden habe, ich vermute , da werde ich mich in diesem Zusammenhang auch drum kümmern müssen. Habt ihr da auch einen Tipp?

Re: user authentication

Verfasst: Freitag 23. September 2022, 17:24
von Pitwheazle
Vielleicht muss ich noch ergänzen, dass ich bei der Gelegenheit den "eingebauten" user mit meinem model verbinden muss, ich muss da noch ein paar mehr Informationen speichern.

Code: Alles auswählen

class Schueler(models.Model):
    nachname = models.CharField(max_length=20)
    vorname = models.CharField(max_length=20)
    
    klasse = models.CharField(max_length=10)
    jg = models.PositiveSmallIntegerField(validators=[MinValueValidator(5), MaxValueValidator(10)])
    kurs= models.CharField(max_length=1, choices=wahl_kurs.choices, default=wahl_kurs.E_KURS,)

    # werden beim Erstellen eingestellt
    datum_start = models.DateField(auto_now_add=True, verbose_name="Startdatum", editable=False, )
    stufe = models.PositiveSmallIntegerField(default=5) #, editable=False)
    halbjahr = models.PositiveSmallIntegerField(default=0)
Die Einträge im zweiten Block (klasse, jg, kurs) müssten die Kids beim Einloggen angeben, dürfen sie aber anschließend nicht mehr ändern (damit sie nicht den Schwierigkeitsgrad der Aufgaben nach belieben ändern können) und der dritte Block würde ich mit Code generieren (datum_start brauche ich wahrscheinlich nicht, das ist schon da?). Später müsste ich das model noch erweitern. Meine Überlegung ist, dass sie bei Bedarf später noch eine Schule eingeben können und dann einem Lehrer ermöglichen, ihre Arbeit einzusehen.

Re: user authentication

Verfasst: Dienstag 27. September 2022, 11:20
von Kebap
Falls es nicht aus dem Zusammenhang klar wird: Dies ist eine Fortsetzung aus jenem Thread: viewtopic.php?t=53873