from signal_additional_func import fill_missing_languages, fill_meta_information import random, string from functions.form_check import translit_with_separator def pre_save_handler(sender, **kwargs): obj = kwargs['instance'] url = getattr(obj, 'url') if url: return if hasattr(obj, 'language_code') and obj.language_code =='en': try: name = getattr(obj, 'name') obj.url = translit_with_separator(name) except AttributeError: pass if not obj.url: obj.url = ''.join([random.choice(string.ascii_lowercase) for n in xrange(8)]) def post_save_handler(sender, **kwargs): """ receiver function take object fill missing languages fill settings if its exist for this object """ obj = kwargs['instance'] fill_missing_languages(obj) fill_meta_information(obj) ''' def post_save_translation_handler(sender, **kwargs): """ receiver function take object and change url """ obj = kwargs['instance'] if obj.language_code == 'ru': obj.master.url = translit_with_separator(obj.name) obj.master.save() '''