o at @sVddlmZddlmZddlmZddlmZddlm Z m Z Gdddej Z dS) )forms)settings)FlatPage)ValidationError)gettext gettext_lazycsjeZdZejedddeddedidZGdd d Zfd d Zd d Z ddZ fddZ Z S) FlatpageFormURLdz ^[-\w/\.~]+$uOExample: “/about/contact/”. Make sure to have leading and trailing slashes.invalidz\This value must contain only letters, numbers, dots, underscores, dashes, slashes or tildes.)label max_lengthregex help_texterror_messagesc@seZdZeZdZdS)zFlatpageForm.Meta__all__N)__name__ __module__ __qualname__rmodelfieldsrr@/usr/lib/python3/dist-packages/django/contrib/flatpages/forms.pyMetasrcs2tj|i||std|jd_dSdS)NuAExample: “/about/contact”. Make sure to have a leading slash.url)super__init___trailing_slash_required_rr)selfargskwargs __class__rrrs zFlatpageForm.__init__cCstjodtjvS)Nz)django.middleware.common.CommonMiddleware)r APPEND_SLASH MIDDLEWARE)rrrrr!sz%FlatpageForm._trailing_slash_requiredcCsJ|jd}|dsttddd|r#|ds#ttddd|S)Nr/zURL is missing a leading slash.missing_leading_slash)codez URL is missing a trailing slash.missing_trailing_slash) cleaned_data startswithrrrendswith)rrrrr clean_url's  zFlatpageForm.clean_urlcs|jd}|jd}tjj|d}|jjr|j|jjd}|rB|j|drB|D]}|j|drAt t dd||d d q+t S) Nrsites)r)pk) sites__in)r.z:Flatpage with url %(url)s already exists for site %(site)s duplicate_url)rsite)r(params) r*getrobjectsfilterinstancer/excludeexistsrrrclean)rrr.same_urlr2r"rrr:5s   zFlatpageForm.clean) rrrr RegexFieldrrrrrr-r: __classcell__rrr"rrs  rN)djangor django.confrdjango.contrib.flatpages.modelsrdjango.core.exceptionsrdjango.utils.translationrrr ModelFormrrrrrs