forms.py 文件源码

python
阅读 34 收藏 0 点赞 0 评论 0

项目:website 作者: hackerspace-ntnu 项目源码 文件源码
def clean_slug(self):
        slug = self.cleaned_data['slug']
        if slug.startswith("_"):
            raise forms.ValidationError(
                ugettext('A slug may not begin with an underscore.'))
        if slug == 'admin':
            raise forms.ValidationError(
                ugettext("'admin' is not a permitted slug name."))

        if settings.URL_CASE_SENSITIVE:
            already_existing_slug = models.URLPath.objects.filter(
                slug=slug,
                parent=self.urlpath_parent)
        else:
            slug = slug.lower()
            already_existing_slug = models.URLPath.objects.filter(
                slug__iexact=slug,
                parent=self.urlpath_parent)
        if already_existing_slug:
            already_urlpath = already_existing_slug[0]
            if already_urlpath.article and already_urlpath.article.current_revision.deleted:
                raise forms.ValidationError(
                    ugettext('A deleted article with slug "%s" already exists.') %
                    already_urlpath.slug)
            else:
                raise forms.ValidationError(
                    ugettext('A slug named "%s" already exists.') %
                    already_urlpath.slug)

        if settings.CHECK_SLUG_URL_AVAILABLE:
            try:
                # Fail validation if URL resolves to non-wiki app
                match = resolve(self.urlpath_parent.path + '/' + slug + '/')
                if match.app_name != 'wiki':
                    raise forms.ValidationError(
                        ugettext('This slug conflicts with an existing URL.'))
            except Resolver404:
                pass

        return slug
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号