Add natural key support to the user mailer model.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-08-03 18:52:53 -04:00
parent 0626529228
commit cbcb8a84c5
2 changed files with 14 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
from __future__ import unicode_literals
from django.db import models
class UserMailerManager(models.Manager):
def get_by_natural_key(self, label):
return self.get(label=label)

View File

@@ -11,6 +11,7 @@ from django.utils.html import strip_tags
from django.utils.module_loading import import_string
from django.utils.translation import ugettext_lazy as _
from .managers import UserMailerManager
from .utils import split_recipient_list
logger = logging.getLogger(__name__)
@@ -51,6 +52,8 @@ class UserMailer(models.Model):
blank=True, verbose_name=_('Backend data')
)
objects = UserMailerManager()
class Meta:
ordering = ('label',)
verbose_name = _('User mailer')
@@ -77,6 +80,9 @@ class UserMailer(models.Model):
def loads(self):
return json.loads(self.backend_data)
def natural_key(self):
return (self.label,)
def save(self, *args, **kwargs):
if self.default:
UserMailer.objects.select_for_update().exclude(pk=self.pk).update(