2017-08-05 6 views
0

J'essaie d'envoyer un e-mail à une adresse spécifique ([email protected]) après chaque commande passée. J'ai l'intention de capturer le signal qui a été tiré et envoyer l'email basé sur ces détails. Je bifurqué l'application de commande et c'est du modèle de commandeEnvoyer les commandes passées à une adresse e-mail personnalisée

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 obtenir actuellement une erreur qui dit auto n'est pas défini. Est-ce la bonne façon d'aborder ce problème?

+0

poster la traceback complète –

Répondre

0

Avant de pouvoir utiliser la fonction auto, vous devez d'abord l'ajouter lors de la création de la méthode. En tant que tel:

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

Lors de la création d'une méthode, vous pouvez placer un argument optionnel appelé self.