From 1dfe913923229e003c339e25f6bc1428d0eaab64 Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Sat, 1 Sep 2018 16:43:46 +0200 Subject: [PATCH] AutoSlugFied: Allow function for populate_from. --- shared/utils/models/slugs.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/shared/utils/models/slugs.py b/shared/utils/models/slugs.py index 6e35243..bbcd5b2 100644 --- a/shared/utils/models/slugs.py +++ b/shared/utils/models/slugs.py @@ -52,11 +52,14 @@ class AutoSlugField(django_fields.SlugField): value = getattr(model_instance, self.attname) if not value: if hasattr(self, 'populate_from'): - # Follow dotted path (e.g. "occupation.corporation.name") - value = reduce(lambda obj, attr: getattr(obj, attr), - self.populate_from.split("."), model_instance) - if callable(value): - value = value() + if callable(self.populate_from): + value = self.populate_from(model_instance, self) + else: + # Follow dotted path (e.g. "occupation.corporation.name") + value = reduce(lambda obj, attr: getattr(obj, attr), + self.populate_from.split("."), model_instance) + if callable(value): + value = value() if not value: value = DEFAULT_SLUG value = self.slugify(value)