Django email confirmation for any Model and any Field.
Project description
django-email-confirm-la
Django email confirmation for any Model and any Field.
Install
$ pip install django-email-confirm-la
in your settings.py:
INSTALLED_APPS = (
...
'email_confirm_la',
...
)
EMAIL_CONFIRMATION_LA_HTTP_PROTOCOL = 'http'
EMAIL_CONFIRMATION_LA_DOMAIN = 'your-domain.com'
in your urls.py:
urlpatterns = patterns(
'',
url(r'^email_confirmation/', include('email_confirm_la.urls')),
...
)
then run
$ python manage.py syncdb
# or if you use south (you should)
$ python manage.py migrate
Models
For User Model
from django.contrib.auth.models import User
from email_confirm_la.models import EmailConfirmation
user = User.objects.get(username='vinta')
unconfirmed_email = 'vinta.chen@gmail.com'
email_confirmation = EmailConfirmation.objects.set_email_for_object(
email=unconfirmed_email,
content_object=user,
)
For Any Model And Any Field
assumed you have a model:
from django.db import models
class YourModel(models.Model):
...
user_support_email = models.EmailField(max_length=255)
marketing_email = models.EmailField(max_length=255)
...
and you want to confirm some emails:
from your_app.models import YourModel
from email_confirm_la.models import EmailConfirmation
some_model_instance = YourModel.objects.get(id=42)
email_confirmation = EmailConfirmation.objects.set_email_for_object(
email='marvin@therestaurantattheendoftheuniverse.com',
content_object=some_model_instance,
email_field_name='user_support_email'
)
email_confirmation = EmailConfirmation.objects.set_email_for_object(
email='arthur.dent@therestaurantattheendoftheuniverse.com',
content_object=some_model_instance,
email_field_name='marketing_email'
)
Signals
post_email_confirmation_send
post_email_confirm
post_email_save
you can do something like:
from django.dispatch import receiver
from email_confirm_la.signals import post_email_confirm
@receiver(post_email_confirm)
def post_email_confirm_callback(sender, confirmation, **kwargs):
model_instace = confirmation.content_object
email = confirmation.email
do_stuff()
Commands
$ python manage.py clear_expired_email_confirmations
Settings
Default values of app settings:
EMAIL_CONFIRM_LA_HTTP_PROTOCOL = 'http'
EMAIL_CONFIRM_LA_DOMAIN = ''
EMAIL_CONFIRM_LA_CONFIRM_EXPIRE_SEC = 60 * 60 * 24 * 1 # 1 day
EMAIL_CONFIRM_LA_CONFIRM_URL_REVERSE_NAME = 'confirm_email'
EMAIL_CONFIRM_LA_SAVE_EMAIL_TO_INSTANCE = True
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django-email-confirm-la-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a292e769e3b38f10a76d80fc21f597a30d0d000eb015ac2088b76b24da124836 |
|
MD5 | 7a689850cd0617753bbc787702c9f8ea |
|
BLAKE2b-256 | cdaa826232dad8d60385eece7f83c8c6147d11beaed879b1cd72dab81531b31f |