[Django] Seltsames Verhalten beim Überschreiben von save()

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
idioglossiahh
User
Beiträge: 8
Registriert: Donnerstag 25. Oktober 2007, 10:50
Wohnort: Hamburg

Samstag 12. Januar 2008, 12:25

Hi zusammen!

Ich überschreibe in meiner Django/Python Klasse die Methode save(), weil ich vor dem Abspeichern der Daten über das von Django generierte Admin Interface noch ein paar Verarbeitungen vornehmen und außerdem eine Mail zugestellt bekommen möchte, wenn ein Redakteur einen Beitrag (in dem Fall ein Review) abspeichert.

Am bestens lässt es sich immer anhand eines Beispiels, was das Problem ist. Also los. :-)

Meine Review Klasse:

Code: Alles auswählen

class Review(models.Model):
    published = models.DateField(auto_now_add=True)
    last_modified = models.DateField(auto_now=True)
    band = models.CharField(maxlength=255)
    album = models.CharField(maxlength=255)
    # weitere Datenfelder

    def save(self):
        # ein paar String Verarbeitungen
        send_mail('Review gespeichert!', '' , 'sentinel@domain.de', ['meine.mailadresse@gmx.de'])
        super(Review, self).save()
Wenn jetzt ein Review gespeichert wird, so bekomme ich auch eine Mail zugestellt. Alles bestens. Der Witz ist nur: Immer wenn auf der Website das gespeicherte Review angeschaut wird, bekomme ich auch eine Mail zugeschickt. Wenn sich täglich hunderte den Beitrag durchlesen, kann das schon anstrengend sein... hat jemand eine Ahnung, woran das liegen könnte?

Ein schönes Wochende wünsch ich! :)

Nils
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Samstag 12. Januar 2008, 12:46

Auf welcher Webseite? Auf deiner? Dann rufst du wohl irgendwo save() auf. Oder meinst du das Admin-UI? Du sagst nicht, welche Django-Version du benutzt.

Wirf doch einfach mal in der save()-Methode eine Exception, um zu sehen, von wo der Aufruf von save() kommt, wenn sich jemand etwas anschaut.

Stefan
idioglossiahh
User
Beiträge: 8
Registriert: Donnerstag 25. Oktober 2007, 10:50
Wohnort: Hamburg

Samstag 12. Januar 2008, 13:13

Hallo Stefan,
sma hat geschrieben: Wirf doch einfach mal in der save()-Methode eine Exception, um zu sehen, von wo der Aufruf von save() kommt, wenn sich jemand etwas anschaut.
Stefan
Typischer Fall von Blödheit (meinerseits). Das mit dem "Exception werfen" war eine gute Idee. Ich hatte tatsächlich irgendwo als Überbleibsel von früheren Tests noch einen Aufruf save() im Sourcode stehen. :oops:

Danke! :)
Antworten