Self-hostable blog for developers built on Wagtail and Django, with webpack, Bootstrap, and CodeMirror.
blogbootstrapdjangodockerhandcodedpythonself-hostedwagtailwebpack
1from django import forms
2
3from .models import Subscriber
4
5
6class SubscriberForm(forms.ModelForm):
7 subscribe = forms.BooleanField(required=False)
8
9 class Meta:
10 model = Subscriber
11 fields = ['email']
12
13 def clean_email(self):
14 email = self.cleaned_data['email']
15 email = email.lower().strip()
16 return email
17
18 def save(self, commit=True):
19 subscriber = super().save(commit=False)
20 if self.cleaned_data['subscribe'] is True:
21 existing = Subscriber.objects.filter(email=subscriber.email)
22 if existing.exists():
23 subscriber = existing.first()
24 if commit:
25 subscriber.save()
26 else:
27 subscriber = Subscriber.objects.filter(email=subscriber.email).delete()
28 return subscriber