2017-08-05 1 views
0

Ich versuche, eine E-Mail an eine bestimmte Adresse ([email protected]) nach jeder erfolgreichen Bestellung zu senden. Ich beabsichtige, das Signal, das ausgelöst wurde, zu erfassen und die E-Mail basierend auf diesen Details zu senden. Ich gegabelt die Reihenfolge App und das ist von der Bestellung ModellSenden Sie Bestellungen an eine benutzerdefinierte E-Mail-Adresse

from django.db import models 
from oscar.apps.order.signals import order_placed 
from django.core.mail import send_mail 
from oscar.apps.checkout.signals import post_checkout 
from oscar.apps.order.abstract_models import AbstractOrder 

class Order(AbstractOrder): 

    def send_order_request(sender, **kwargs): 
     order = kwargs['instance'] 
     subject = 'New order placed' 
     send_mail(subject, order, ['[email protected]']) 

    order_placed.connect(send_order_request, order=self.order, 
    user=self.user) 

from oscar.apps.order.models import * 

Im derzeit einen Fehler bekommen, die sich selbst sagt, ist nicht definiert. Ist das der richtige Weg, dieses Problem anzugehen?

+0

Post die vollständige Traceback –

Antwort

0

Bevor Sie die Self-Funktion verwenden können, müssen Sie sie zuerst hinzufügen, wenn Sie die Methode erstellen. Als solches:

def send_order_request(self, sender, **kwargs): 
... 

Wenn Sie eine Methode erstellen, können Sie ein optionales Argument namens self einfügen.

Verwandte Themen