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'] 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)]) """ url = getattr(obj, 'url') if url: try: en_name = obj._meta.translations_model.objects.get(language_code='en', master__id=getattr(obj, 'id')) obj.url = translit_with_separator(en_name) except: pass else: # generate random url if url field is empty 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() '''