Ich versuche, den Sitzungsbenutzer in die save() -Methode meines Modells zu ziehen. The docs for HttpRequest und alle Beispiele, die ich gefunden habe, nehmen an, dass Sie bereits das Objekt instanziiert haben, aber ich kann nicht scheinen, eine Methode zu finden, die die Instanziierung tut.Wie bekomme ich den aktuellen Benutzer für mein created_by Feld in Django 1.9?
Ich denke, ich sollte HttpRequest.user
verwenden, aber ich weiß nicht, wie die Instanz in meinem Modell zu generieren, damit ich es tatsächlich tun kann.
Hier ist meine Save() überschreiben. Es erzeugt type object 'HttpRequest' has no attribute 'user'
, aber wenn man bedenkt das ist eine Klasse und nicht eine Objektreferenz, die nicht wirklich überraschend .: ist
def save(self, *args, **kwargs):
''' On save, update timestamps '''
if not hasattr(self, 'id'):
self.date_created = timezone.now()
self.created_by = HttpRequest.user
self.last_updated_date = timezone.now()
self.last_updated_by = HttpRequest.user
super(Caregiver, self).save(*args, **kwargs)
views.py für weitere Informationen hinzugefügt
class CaregiverCreateView(CreateView):
template_name = 'single_form_generic.html'
model = Caregiver
form_class = CaregiverCreateForm
I Klasse basierte Ansichten bin mit:
Einmal eingerichtet, kann es wie folgt aufgerufen werden. Wie würde ich das hinzufügen? Ich habe views.py in meiner Frage zur besseren Übersicht hinzugefügt. – meteorainer
Während ich diese Methode nicht benutzt habe, habe ich sie +1 gegeben, weil sie mich zur Antwort geführt hat. – meteorainer
Cool. Freut mich, dass du deine Antwort gefunden hast. Ich habe mir den zweiten Blick angesehen und klingt, als ob das, was Sie zu tun versuchen, vollständig erreicht werden kann, indem Sie die form_valid-Methode für klassenbasierte Ansichten außer Kraft setzen. –