2011-04-06 2 views
1

Ive été demandé par un client que son magasin de Satchmo doit envoyer un courrier au format HTML lors de la réinitialisation de son mot de passe.Satchmo password_reset format HTML courrier

Aparently Satchmo ou le contrib.auth.views.password_reset de django envoie seulement email brut.

Comment puis-je modifier ceci afin de pouvoir envoyer des mails au format HTML?

Merci!

Répondre

5

Je ne l'ai pas utilisé Satchmo, mais cela devrait vous aider à démarrer.

Tout d'abord, sous-classe PasswordResetForm et remplacer la méthode save pour envoyer un courrier électronique HTML au lieu d'un e-mail en texte brut. Vous pouvez utiliser le existing PasswordResetForm comme guide. Vous devez remplacer l'appel send_mail à la fin avec le code pour envoyer des emails HTML. Les docs sur sending html emails devraient aider.

Une fois que vous avez écrit votre formulaire, vous devez inclure le formulaire dans le modèle d'URL pour password_reset. Comme je l'ai dit, je n'ai aucune expérience de Satchmo, mais en regardant le code source, je pense que vous voulez mettre à jour satchmo_store.accounts.urls, en changeant le password_reset_dict.

# You need to import your form, or define it in this module 
from myapp.forms import HTMLPasswordResetForm 

#Dictionary for authentication views 
password_reset_dict = { 
    'template_name': 'registration/password_reset_form.html', 
    # You might want the change the email template to .html 
    'email_template_name': 'registration/password_reset.txt', 
    'password_reset_form': HTMLPasswordResetForm, 
} 

# the "from email" in password reset is problematic... it is hard coded as None 
urlpatterns += patterns('django.contrib.auth.views', 
    (r'^password_reset/$', 'password_reset', password_reset_dict, 'auth_password_reset'), 
    ...