Posted: April 18th, 2010 | Author: Davo | Filed under: Django | Tags: changepassword | No Comments »
The manage.py provides a changepassword option which allows you to change the password of any given User (django.contrib.auth).
To change the password of the root account:
python manage.py changepassword
Changing password for user 'root'
Password: xxx
Password (again): xxx
Password changed successfully for user 'root'
If you want to change the password for another User:
python manage.py changepassword someuser
Error: user 'someuser' does not exist
Posted: April 16th, 2010 | Author: Davo | Filed under: Django | Tags: uuid | No Comments »
Generating UUID(A Universally Unique IDentifier) example: (only from python 2.5+)
>>> import uuid
>>> unique_id = str(uuid.uuid4())
>>> print unique_id
e31c4c33-2d02-49ef-a501-a9f947f86697
>>>
Reference: http://docs.python.org/library/uuid.html
Posted: April 14th, 2010 | Author: Arif Harbott | Filed under: Django | Tags: custom decorator, decoratorexample | 2 Comments »
I had a situation today where I had to write a custom decorator for a Django app and thought I would post the code.
I first created a file called decorators.py and placed it in the project folder.
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from functools import wraps
def access_required(permission):
def decorator(func):
def inner_decorator(request, *args, **kwargs):
if permission == 'admin':
if request.session['user_profile'].is_account_admin == 1:
return func(request, *args, **kwargs)
else:
return HttpResponseRedirect(reverse('dashboard'))
return wraps(func)(inner_decorator)
return decorator
Then in my views I simply imported the decorator and added it to my view:
from webapp.decorators import access_required
@access_required('admin')
def account_users(request):
...
Posted: April 12th, 2010 | Author: Davo | Filed under: Django | Tags: EmailMultiAlternatives, sendhtmlemail | 9 Comments »
It is possible to send a HTML email using the EmailMultiAlternatives
Example:
from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string
from django.utils.html import strip_tags
subject, from_email, to = 'Order Confirmation', 'admin@yourdomain.com', 'someone@somewhere.com'
html_content = render_to_string('the_template.html', {'varname':'value'}) # ...
text_content = strip_tags(html_content) # this strips the html, so people will have the text as well.
# create the email, and attach the HTML version as well.
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
Posted: April 12th, 2010 | Author: Davo | Filed under: Django | Tags: render_to_response | No Comments »
The render_to_string is similar to render_to_response but instead of sending the data to the response object it just saves the result as a string object.
This can be then used as normal string.
Example:
from django.template.loader import render_to_string
response = render_to_string('the_template.html', { 'varname': 'value' })
Be carefull, you CAN NOT do the following:
from django.template.loader import render_to_string
def my_view(request):
...
return render_to_string('the_template.html', { 'varname': 'value' }) # CRASH...!
But you CAN DO this instead:
from django.http import HttpResponse
from django.template.loader import render_to_string
def my_view(request):
...
return HttpResponse( render_to_string('the_template.html', { 'varname': 'value' }) )