Skip to main content

Simple email confirmation for django model instances.

Project description

djeveric

Simple email confirmation for django model instances with Django Rest Framework.

Usage

Create a model

Create a model class inheriting from ConfirmableModelMixin with a ConfirmationField and refer to a ConfirmationEmail class like this:

from django.conf import settings
from django.db import models

from djeveric.emails import ConfirmationEmail
from djeveric.fields import ConfirmationField
from djeveric.models import ConfirmableModelMixin

class MyModelConfirmationEmail(ConfirmationEmail):
    subject = "Please confirm"
    
    def get_body(self, context):
        return f"Use this link to confirm: http://my-frontend/confirm/{self.token}"
    
    def get_recipient(self) -> str:
        return self.instance.owner.email

class MyModel(ConfirmableModelMixin, models.Model):
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    is_confirmed = ConfirmationField(email_class=MyModelConfirmationEmail)

When unconfirmed instances of the model are saved, djeveric sends a confirmation email to the specified address.

Create a ViewSet

To actually confirm a viewset, your backend needs a view set using the ConfirmModelMixin:

from rest_framework import viewsets

from djeveric.views import ConfirmModelMixin


class MyModelViewSet(ConfirmModelMixin, viewsets.GenericViewSet):
    queryset = MyModel.objects

On a POST /api/my-models/{pk}/confirm/ with {"token": "THE TOKEN"} as data the model instance will be confirmed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djeveric-2.2.0.tar.gz (4.4 kB view details)

Uploaded Source

File details

Details for the file djeveric-2.2.0.tar.gz.

File metadata

  • Download URL: djeveric-2.2.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for djeveric-2.2.0.tar.gz
Algorithm Hash digest
SHA256 f3ea75655ec494a530c33c9050c57d212bcf2ac37d94ef29e8de22d0fb520829
MD5 b51fcf4865dd6da55f884b0d10987379
BLAKE2b-256 25316cf44831ed61641a65ae8abd7f013d7dec57a9e9a7c0cbf5f096356523cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page