Globaler name 'anfrage' ist nicht definiert: überschreiben form_valid

Ich habe ein UpdateView, das ich die Form_valid-Methode überschreibe. Aus irgendeinem Grund wird die Anforderung als nicht in der überschriebenen Methode definiert. Hier ist die volle Klasse:

class UpdateTopic(UpdateView): model = Post slug_field = 'pk' slug_url_kwarg = 'pk' form_class = CommentForm template_name = "forums/update_topic.html" def form_valid(self, form): user = self.request.user rep = self.request.user.player.get_rep_total # protect the system against url input attacks if user == self.object.user or rep >=2500: self.object = form.save(commit=False) self.object.updated_by = self.request.user self.object.save() messages.add_message(request, message.SUCCESS, "<strong>Success:</strong> The comment was edited successfully!") else: messages.add_message(request, message.ERROR, "<strong>Failed:</strong> You don't have the access level to edit that post!") 

Das Problem ist die Zeile messages.add_message(request, message.SUCCESS, "<strong>Success:</strong> The comment was edited successfully!") Es scheint, als ob die request außerhalb des Gültigkeitsbereichs ist. Warum macht das das? Gibt es einen Weg, um das zu umgehen?

One Solution collect form web for “Globaler name 'anfrage' ist nicht definiert: überschreiben form_valid”

Es sollte sich selbst self.request und nicht request .

 messages.add_message(self.request, message.ERROR, "...") 
  • Ändern von Choices von ModelMultipleChoiceField
  • Verwenden von formset_factory in Django
  • Unterschied zwischen Django Form 'initial' und 'gebundene Daten'?
  • Django - Wie man admin Formularfelder vorbereitet
  • Django-Modell-Formular Viele zu viele Feld ist nicht Wert anzeigen
  • Django Modell Formset Fabrik und Formen
  • Erstellen eines Dropdown-Menüs von Mitglieds-IDs
  • Django, übergebende Informationen beim Ändern von queryset für ModelForm
  • Wie man Modelldaten mit Django-Formularen bearbeiten kann
  • Django - Entfernen Sie "Aktuell" in einem Bild Bearbeiten Formular und ersetzen Sie es mit dem tatsächlichen Bild
  • Löschen von Django-Formularfeldern auf Formularvalidierungsfehler?
  • Python ist die beste Programmiersprache der Welt.