o ap@sddlZddlmZmZddlmZddlmZmZddl m Z ddl m Z iaddZGd d d ejZGd d d ejZd dZejeedejeeddS)N)ImproperlyConfiguredValidationError)models) pre_deletepre_save)split_domain_port) gettext_lazycs0fddtjD}t|rttddddS)z\ Validate that the given value contains no whitespaces to prevent common typos. c3s|]}|vVqdSN).0svaluer =/usr/lib/python3/dist-packages/django/contrib/sites/models.py sz0_simple_domain_name_validator..z2The domain name cannot contain any spaces or tabs.invalid)codeN)string whitespaceanyr_)rchecksr r r_simple_domain_name_validator src@s:eZdZdZddZddZd ddZd d Zd d ZdS) SiteManagerTcCs$|tvr|j|d}|t|<t|S)Npk) SITE_CACHEget)selfsite_idsiter r r_get_site_by_ids zSiteManager._get_site_by_idcCsl|}z|tvr|j|dt|<t|WStjy5t|\}}|tvr/|j|dt|<t|YSw)N)domain__iexact)get_hostrrSite DoesNotExistr)rrequesthostdomainportr r r_get_site_by_request"s   z SiteManager._get_site_by_requestNcCs>ddlm}t|ddr|j}||S|r||Std)a Return the current Site based on the SITE_ID in the project's settings. If SITE_ID isn't defined, return the site with domain matching request.get_host(). The ``Site`` object is cached the first time it's retrieved from the database. r)settingsSITE_IDzYou're using the Django "sites framework" without having set the SITE_ID setting. Create a site in your database and set the SITE_ID setting or pass a request to Site.objects.get_current() to fix this error.) django.confr+getattrr,r!r*r)rr&r+rr r r get_current0s    zSiteManager.get_currentcCsiadS)z Clear the ``Site`` object cache.N)rrr r r clear_cacheEszSiteManager.clear_cachecCs |j|dS)Nr()r)rr(r r rget_by_natural_keyJs zSiteManager.get_by_natural_keyr ) __name__ __module__ __qualname__use_in_migrationsr!r*r0r2r4r r r rrs  rc@sZeZdZejeddegddZejedddZe Z Gdd d Z d d Z d d Z dS)r$z domain namedT) max_length validatorsuniquez display name2)r:c@s&eZdZdZedZedZdgZdS)z Site.Meta django_siter sitesr(N)r5r6r7db_tabler verbose_nameverbose_name_pluralorderingr r r rMetaZs  rDcCs|jSr r3r1r r r__str__`sz Site.__str__cCs|jfSr r3r1r r r natural_keycszSite.natural_keyN)r5r6r7r CharFieldrrr(namerobjectsrDrErFr r r rr$Ns r$c Ksl|d}|d}zt|j=Wn tyYnwzttj|j|jdj=WdSttjfy5YdSw)zK Clear the cache (if primed) each time a site is saved or deleted. instanceusingrN) rrKeyErrorr$rIrKrr(r%)senderkwargsrJrKr r rclear_site_cachegs   rO)rM)rdjango.core.exceptionsrr django.dbrdjango.db.models.signalsrrdjango.http.requestrdjango.utils.translationrrrrManagerrModelr$rOconnectr r r rs    5