Simple email confirmation for django model instances.
Project description
djeveric
Simple email confirmation for django model instances with
[Django Rest Framework](https://www.django-rest-framework.org/).
## Usage
### Create a model
Create a model class inheriting from `ConfirmableModelMixin` with a `ConfirmationField` and refer to a
`ConfirmationEmail` class like this:
```python
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`:
```python
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.3.0.tar.gz
(4.4 kB
view details)
File details
Details for the file djeveric-2.3.0.tar.gz.
File metadata
- Download URL: djeveric-2.3.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32a7f604c5f01ba83851297076331b4913c708612a4db5b6ca888425b4361e8b
|
|
| MD5 |
4eedb7ca343eca583e8229dde610d723
|
|
| BLAKE2b-256 |
18634618de808cf5caa85072b00ee1f01b04f1ed5169dac16358d6954c4bd655
|