1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | from django.template import loader, Context
from django.core.mail import send_mail
t = loader.get_template('registration/email.txt')
c = Context({
'name': request.POST.get('name'),
'username': request.POST.get('username'),
'product_name': 'Your Product Name',
'product_url': 'http://www.yourproject.com/',
'login_url': 'http://www.yourproject.com/login/',
})
send_mail('Welcome to My Project', t.render(c), 'from@address.com', ['user@adderss.com',], fail_silently=False)
##############################################################
Sample Template for the above: registration/email.txt
##############################################################
Dear {{ name }},
Thank you for signing up with {{ product_name }}.
Your new username is {{ username }}, and you can login at {{ login_url }}. Once logged in, you'll be able to access more features on our website..
We hope that {{ product_name }} is of good use to you. If you have any feedback, please respond to this e-mail or submit it to us via our website.
Regards,
{{ product_name }} Administration
{{ product_url }}
|
Comments
How do I separate the logic from the template? Where do I place the logic (in a python script, a view, or what?)
#
Just saw this comment, apologies for the late response.
Lines 1-14 would be in your view, whilst lines 19-30 are in a template called 'registration/email.txt'.
#
The function
render_to_stringindjango.template.loaderwould make this quite a bit shorter; it's somewhat likerender_to_responseexcept it returns the rendered string from the template instead of anHttpResponse.#