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
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
djeveric-2.2.0.tar.gz
(4.4 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3ea75655ec494a530c33c9050c57d212bcf2ac37d94ef29e8de22d0fb520829 |
|
MD5 | b51fcf4865dd6da55f884b0d10987379 |
|
BLAKE2b-256 | 25316cf44831ed61641a65ae8abd7f013d7dec57a9e9a7c0cbf5f096356523cc |