from .models import * def get_options_by_opt_types(opt_types, only_vals=False): if type(opt_types) == str: kwargs = {'opt_type': opt_types} elif type(opt_types) == dict: kwargs = opt_types else: kwargs = {'opt_type__in': opt_types} opts = Option.objects.filter(**kwargs) if opts and only_vals: res = {} opts = opts.values('opt_type', 'value', 'prefix') for item in opts: # if item['opt_type'] == 'domain': # # try: # from django.contrib.sites.models import Site # current_site = Site.objects.get_current() # res.update({item['opt_type']: current_site.domain}) # # continue # except Exception as e: # print(str(e)) if item['prefix']: res.update({item['opt_type']: f"{item['prefix']}{item['value']}"}) else: res.update({item['opt_type']: f"{item['value']}"}) return res return opts def get_first_option_value_by_opt_type(opt_type): opts = get_options_by_opt_types(opt_type) if opts: return opts[0].value else: return None def get_mail_send_options(): opt_types = ['mail_server_url', 'mail_server_smtp_port', 'sender_mail_login', 'sender_mail_password', 'sender_email', 'project_name'] return get_options_by_opt_types(opt_types, only_vals=True)