Ich erstelle eine App. Es hat ein Manytomany-Feld zum Speichern von Daten über Klasse und Schüler.
urls.py
url(r'^class/(?p<title>[-\w]+)/(?p<id>[\d]+)/',views.list,name ='list'),
Grundsätzlich kann ein user
(Lehrer) viele erstellen. class_room
Jeder class_room
hat einen title
und viele students
folgen in dieser Klasse.
Das Problem ist:
Jeder class_room
hat ein Unikat url
. ZB (mywebsite.com/science/88/) Dieser Link ist nur für folgende Schüler zugänglich, nicht für anonyme Benutzer. Dies ist eine Lücke, wenn nicht folgende Schüler versuchen, url
die Seite zu sehen, die nicht zufällig ist /2500/).
Wie kann man einen Schüler daran hindern, auf eine Seite zuzugreifen, die er nicht verfolgt?
das UserPassesTestMixin
Mixin kann zu diesem Zweck verwendet werden. Schreiben Sie im Grunde eine View-Klasse, die die test_func
Funktion implementiert . Diese Funktion hat Zugriff, self
damit Sie die URL und den Benutzer lesen können. Wenn test_func zurückgibt True
, darf der Benutzer weitermachen, andernfalls wird er an die Zugriffskontrolle übergeben (wahrscheinlich zum Anmeldeformular umgeleitet, falls konfiguriert).
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen