• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python utils.slugify函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中zds.utils.slugify函数的典型用法代码示例。如果您正苦于以下问题:Python slugify函数的具体用法?Python slugify怎么用?Python slugify使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了slugify函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: new_gallery

def new_gallery(request):
    '''
    Creates a new gallery
    '''
    if request.method == 'POST':
        form = GalleryForm(request.POST)
        if form.is_valid():
            data = form.data
            # Creating the gallery
            gal = Gallery()
            gal.title = data['title']
            gal.subtitle = data['subtitle']
            gal.slug = slugify(data['title'])
            gal.pubdate = datetime.now()
            gal.save()

            # Attach user
            userg = UserGallery()
            userg.gallery = gal
            userg.mode = 'W'
            userg.user = request.user
            userg.save()

            return redirect(gal.get_absolute_url())

        else:
            # TODO: add errors to the form and return it
            raise Http404
    else:
        form = GalleryForm()
        return render_template('gallery/new_gallery.html', {
            'form': form
        })
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:33,代码来源:views.py


示例2: get_absolute_url_beta

 def get_absolute_url_beta(self):
     if self.sha_beta != None:
         return reverse('zds.tutorial.views.view_tutorial', args=[
             self.pk, slugify(self.title)
         ])+'?version='+self.sha_beta
     else:
         return self.get_absolute_url()
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:7,代码来源:models.py


示例3: new_gallery

def new_gallery(request):
    """Creates a new gallery."""

    if request.method == "POST":
        form = GalleryForm(request.POST)
        if form.is_valid():
            data = form.data

            # Creating the gallery

            gal = Gallery()
            gal.title = data["title"]
            gal.subtitle = data["subtitle"]
            gal.slug = slugify(data["title"])
            gal.pubdate = datetime.now()
            gal.save()

            # Attach user

            userg = UserGallery()
            userg.gallery = gal
            userg.mode = "W"
            userg.user = request.user
            userg.save()
            return redirect(gal.get_absolute_url())
        else:
            return render_template("gallery/gallery/new.html", {"form": form})
    else:
        form = GalleryForm()
        return render_template("gallery/gallery/new.html", {"form": form})
开发者ID:Aer-o,项目名称:zds-site,代码行数:30,代码来源:views.py


示例4: new_image

def new_image(request, gal_pk):
    '''
    Creates a new image
    '''
    gal = get_object_or_404(Gallery, pk=gal_pk)

    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid() \
           and request.FILES['physical'].size < settings.IMAGE_MAX_SIZE:
            img = Image()
            img.physical = request.FILES['physical']
            img.gallery = gal
            img.title = request.POST['title']
            img.slug = slugify(request.FILES['physical'])
            img.legend = request.POST['legend']
            img.pubdate = datetime.now()

            img.save()

            # Redirect to the document list after POST
            return redirect(gal.get_absolute_url())
        else:
            # TODO: add errors to the form and return it
            raise Http404
    else:
        form = ImageForm()  # A empty, unbound form
        return render_template('gallery/new_image.html', {
            'form': form,
            'gallery': gal
        })
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:31,代码来源:views.py


示例5: test_notification_read

    def test_notification_read(self):
        """
        When we post on a topic, a notification is created for each subscriber. We can
        read a notification when we display the list of messages of the said topic.
        """
        topic1 = TopicFactory(forum=self.forum11, author=self.user2)
        PostFactory(topic=topic1, author=self.user2, position=1)

        result = self.client.post(
            reverse('post-new') + '?sujet={0}'.format(topic1.pk),
            {
                'last_post': topic1.last_message.pk,
                'text': 'C\'est tout simplement l\'histoire de la ville de Paris que je voudrais vous conter '
            },
            follow=False)

        self.assertEqual(result.status_code, 302)

        notification = Notification.objects.get(subscription__user=self.user2)
        self.assertEqual(notification.is_read, False)

        self.client.logout()
        self.assertTrue(self.client.login(username=self.user2.username, password='hostel77'), True)

        result = self.client.get(reverse('topic-posts-list', args=[topic1.pk, slugify(topic1.title)]), follow=True)
        self.assertEqual(result.status_code, 200)

        notification = Notification.objects.get(subscription__user=self.user2)
        self.assertEqual(notification.is_read, True)
开发者ID:josephcab,项目名称:zds-site,代码行数:29,代码来源:tests_basics.py


示例6: topic

def topic(request, topic_pk, topic_slug):
    """Display a thread and its posts using a pager."""

    # TODO: Clean that up
    g_topic = get_object_or_404(PrivateTopic, pk=topic_pk)

    if not g_topic.author == request.user \
            and request.user not in list(g_topic.participants.all()):
        raise PermissionDenied

    # Check link
    if not topic_slug == slugify(g_topic.title):
        return redirect(g_topic.get_absolute_url())

    if request.user.is_authenticated():
        if never_privateread(g_topic):
            mark_read(g_topic)

    posts = PrivatePost.objects.filter(privatetopic__pk=g_topic.pk)\
        .order_by('position_in_topic')\
        .all()

    last_post_pk = g_topic.last_message.pk

    # Handle pagination
    paginator = Paginator(posts, settings.POSTS_PER_PAGE)

    try:
        page_nbr = int(request.GET['page'])
    except KeyError:
        page_nbr = 1

    try:
        posts = paginator.page(page_nbr)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        raise Http404

    res = []
    if page_nbr != 1:
        # Show the last post of the previous page
        last_page = paginator.page(page_nbr - 1).object_list
        last_post = (last_page)[len(last_page) - 1]
        res.append(last_post)

    for post in posts:
        res.append(post)

    # Build form to add an answer for the current topid.
    form = PrivatePostForm(g_topic, request.user)

    return render_template('mp/topic/index.html', {
        'topic': g_topic,
        'posts': res,
        'pages': paginator_range(page_nbr, paginator.num_pages),
        'nb': page_nbr,
        'last_post_pk': last_post_pk,
        'form': form
    })
开发者ID:Akulen,项目名称:zds-site,代码行数:60,代码来源:views.py


示例7: new_image

def new_image(request, gal_pk):
    """Creates a new image."""

    gal = get_object_or_404(Gallery, pk=gal_pk)

    # check if the user can upload new image in this gallery
    try:
        gal_mode = UserGallery.objects.get(gallery=gal, user=request.user)
        if gal_mode.mode != 'W':
            raise PermissionDenied
    except:
        raise PermissionDenied

    if request.method == "POST":
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid() and request.FILES["physical"].size < settings.IMAGE_MAX_SIZE:
            img = Image()
            img.physical = request.FILES["physical"]
            img.gallery = gal
            img.title = request.POST["title"]
            img.slug = slugify(request.FILES["physical"])
            img.legend = request.POST["legend"]
            img.pubdate = datetime.now()
            img.save()

            # Redirect to the newly uploaded image edit page after POST
            return redirect(reverse("zds.gallery.views.edit_image",
                                    args=[gal.pk, img.pk]))
        else:
            return render_template("gallery/image/new.html", {"form": form,
                                                              "gallery": gal})
    else:
        form = ImageForm(initial={"new_image": True})  # A empty, unbound form
        return render_template("gallery/image/new.html", {"form": form,
                                                          "gallery": gal})
开发者ID:Zikkee,项目名称:zds-site,代码行数:35,代码来源:views.py


示例8: home

def home(request):
    """Display the home page with last topics added."""

    tutos = []
    for tuto in get_last_tutorials():
        data = tuto.load_json_for_public()
        data['pk'] = tuto.pk
        data['image'] = tuto.image
        data['gallery'] = tuto.gallery
        data['pubdate'] = tuto.pubdate
        data['update'] = tuto.update
        data['subcategory'] = tuto.subcategory
        data['get_absolute_url_online'] = reverse(
            'zds.tutorial.views.view_tutorial_online',
            args=[
                tuto.pk,
                slugify(
                    data['title'])])

        tutos.append(data)

    try:
        with open(os.path.join(SITE_ROOT, 'quotes.txt'), 'r') as fh:
            quote = random.choice(fh.readlines())
    except:
        quote = u'Zeste de Savoir, la connaissance pour tous et sans pépins !'

    return render_template('home.html', {
        'last_topics': get_last_topics(request.user),
        'last_tutorials': tutos,
        'last_articles': get_last_articles(),
        'quote': quote,
    })
开发者ID:Aer-o,项目名称:zds-site,代码行数:33,代码来源:views.py


示例9: slug

 def slug(self):
     """
     PrivateTopic doesn't have a slug attribute of a private topic. To be compatible
     with older private topic, the slug is always re-calculate when we need one.
     :return: title slugify.
     """
     return slugify(self.title)
开发者ID:josephcab,项目名称:zds-site,代码行数:7,代码来源:models.py


示例10: get_prod_path

 def get_prod_path(self):
     if self.chapter.tutorial:
         chapter_path = os.path.join(os.path.join(settings.REPO_PATH_PROD, self.chapter.tutorial.slug), self.chapter.slug)
     else:
         chapter_path = os.path.join(os.path.join(os.path.join(settings.REPO_PATH_PROD, self.chapter.part.tutorial.slug), self.chapter.part.slug), self.chapter.slug)
         
     return os.path.join(chapter_path, slugify(self.title)+'.md.html') 
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:7,代码来源:models.py


示例11: get

 def get(self, request, *args, **kwargs):
     self.object = self.get_object()
     if not self.object.forum.can_read(request.user):
         raise PermissionDenied
     if not self.kwargs.get('topic_slug') == slugify(self.object.title):
         return redirect(self.object.get_absolute_url())
     return super(TopicPostsListView, self).get(request, *args, **kwargs)
开发者ID:josephcab,项目名称:zds-site,代码行数:7,代码来源:views.py


示例12: load_dic

 def load_dic(self, article_version):
     article_version['pk'] = self.pk
     article_version['slug'] = slugify(article_version['title'])
     article_version['image'] = self.image
     article_version['pubdate'] = self.pubdate
     article_version['is_locked'] = self.is_locked
     article_version['sha_draft'] = self.sha_draft
     article_version['sha_validation'] = self.sha_validation
     article_version['sha_public'] = self.sha_public
     article_version['last_read_reaction'] = self.last_read_reaction
     article_version['get_reaction_count'] = self.get_reaction_count
     article_version['get_absolute_url'] = reverse('zds.article.views.view', 
                                                   args=[self.pk, self.slug])
     article_version['get_absolute_url_online'] = reverse('zds.article.views.view_online', 
                                                          args=[self.pk, slugify(article_version['title'])])
     
     return article_version
开发者ID:Akulen,项目名称:zds-site,代码行数:17,代码来源:models.py


示例13: edit_image

def edit_image(request, gal_pk, img_pk):
    """Edit an existing image."""

    gal = get_object_or_404(Gallery, pk=gal_pk)
    img = get_object_or_404(Image, pk=img_pk)

    # Check if user can edit image
    try:
        permission = UserGallery.objects.get(user=request.user, gallery=gal)
        if permission.mode != 'W':
            raise PermissionDenied
    except:
        raise PermissionDenied

    # Check if the image belong to the gallery
    if img.gallery != gal:
        raise PermissionDenied

    if request.method == "POST":
        form = UpdateImageForm(request.POST, request.FILES)
        if form.is_valid():
            if "physical" in request.FILES:
                if request.FILES["physical"].size > settings.IMAGE_MAX_SIZE:
                    messages.error(request, "Votre image est beaucoup trop lourde, réduisez sa taille à moins de {} \
                    <abbr title=\"kibioctet\">Kio</abbr> avant de l'envoyer".format(str(settings.IMAGE_MAX_SIZE/1024)))
                else:
                    img.title = request.POST["title"]
                    img.legend = request.POST["legend"]
                    img.physical = request.FILES["physical"]
                    img.slug = slugify(request.FILES["physical"])
                    img.update = datetime.now()
                    img.save()
                    # Redirect to the newly uploaded image edit page after POST
                    return redirect(reverse("zds.gallery.views.edit_image", args=[gal.pk, img.pk]))
            else:
                img.title = request.POST["title"]
                img.legend = request.POST["legend"]
                img.update = datetime.now()
                img.save()
                # Redirect to the newly uploaded image edit page after POST
                return redirect(reverse("zds.gallery.views.edit_image", args=[gal.pk, img.pk]))

    else:
        form = UpdateImageForm(initial={
            "title": img.title,
            "legend": img.legend,
            "physical": img.physical,
            "new_image": False,
        })

    as_avatar_form = ImageAsAvatarForm()
    return render_template(
        "gallery/image/edit.html", {
            "form": form,
            "as_avatar_form": as_avatar_form,
            "gallery": gal,
            "image": img
        })
开发者ID:Zikkee,项目名称:zds-site,代码行数:58,代码来源:views.py


示例14: get_absolute_url_beta

 def get_absolute_url_beta(self):
     if self.sha_beta is not None:
         return (
             reverse("zds.tutorial.views.view_tutorial", args=[self.pk, slugify(self.title)])
             + "?version="
             + self.sha_beta
         )
     else:
         return self.get_absolute_url()
开发者ID:GaaH,项目名称:zds-site,代码行数:9,代码来源:models.py


示例15: view

def view(request, article_pk, article_slug):
    """Show the given offline article if exists."""
    article = get_object_or_404(Article, pk=article_pk)

    # Only authors of the article and staff can view article in offline.
    if request.user not in article.authors.all():
        if not request.user.has_perm('article.change_article'):
            raise PermissionDenied

    # The slug of the article must to be right.
    if article_slug != slugify(article.title):
        return redirect(article.get_absolute_url())

    # Retrieve sha given by the user. This sha must to be exist.
    # If it doesn't exist, we take draft version of the article.
    try:
        sha = request.GET['version']
    except KeyError:
        sha = article.sha_draft

    # Find the good manifest file
    repo = Repo(article.get_path())

    # Load the article.
    try:
        manifest = get_blob(repo.commit(sha).tree, 'manifest.json')
    except:
        sha = article.sha_draft
        manifest = get_blob(repo.commit(sha).tree, 'manifest.json')

    article_version = json_reader.loads(manifest)
    article_version['txt'] = get_blob(
        repo.commit(sha).tree,
        article_version['text'])
    article_version['pk'] = article.pk
    article_version['slug'] = article.slug
    article_version['image'] = article.image
    article_version['pubdate'] = article.pubdate
    article_version['sha_draft'] = article.sha_draft
    article_version['sha_validation'] = article.sha_validation
    article_version['sha_public'] = article.sha_public
    article_version['get_absolute_url_online'] = article.get_absolute_url_online()

    validation = Validation.objects.filter(article__pk=article.pk,
                                            version=sha)\
                                    .order_by("-date_proposition")\
                                    .first()

    return render_template('article/member/view.html', {
        'article': article_version,
        'authors': article.authors,
        'tags': article.subcategory,
        'version': sha,
        'validation': validation
    })
开发者ID:Zopieux,项目名称:zds-site,代码行数:55,代码来源:views.py


示例16: edit_image

def edit_image(request, gal_pk, img_pk):
    """Creates a new image."""

    gal = get_object_or_404(Gallery, pk=gal_pk)
    img = get_object_or_404(Image, pk=img_pk)

    # check if user can edit image
    try:
        permission = UserGallery.objects.get(user=request.user, gallery=gal)
        if permission.mode != 'W':
            raise PermissionDenied
    except:
        raise PermissionDenied

    # check if the image belong to the gallery
    if img.gallery != gal:
        raise PermissionDenied
    
    
    if request.method == "POST":
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid():
            if "physical" in request.FILES:
                if request.FILES["physical"].size > settings.IMAGE_MAX_SIZE:
                    messages.error(request, "Votre image est beaucoup trop lourde, réduidez sa taille à moins de {} avant de l'envoyer".format(str(settings.IMAGE_MAX_SIZE/1024*1024)))
                else:
                    img.title = request.POST["title"]
                    img.legend = request.POST["legend"]
                    img.physical = request.FILES["physical"]
                    img.slug = slugify(request.FILES["physical"])
                    img.update = datetime.now()
                    img.save()
                    # Redirect to the document list after POST
                    return redirect(gal.get_absolute_url())
            else:
                img.title = request.POST["title"]
                img.legend = request.POST["legend"]
                img.update = datetime.now()
                img.save()

                # Redirect to the document list after POST
                return redirect(gal.get_absolute_url())
    else:
        form = ImageForm(initial={"title": img.title, "legend": img.legend, "physical": img.physical})
    
    as_avatar_form = ImageAsAvatarForm()
    return render_template(
        "gallery/image/edit.html", {
            "form": form,
            "as_avatar_form": as_avatar_form,
            "gallery": gal,
            "image": img
        })
开发者ID:Aer-o,项目名称:zds-site,代码行数:53,代码来源:views.py


示例17: repo_extract

def repo_extract(extract, sha=None):
    if sha == None:
        return {'text': extract.get_text()}
    else:
        repo_e = Repo(extract['path'])
        bls_e = repo_e.commit(sha).tree.blobs
        
        for bl in bls_e:
            if bl.path==slugify(extract['title'])+'.md':
                text = bl.data_stream.read()
                return {'text': text.decode('utf-8')}
    return {'text': ''}
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:12,代码来源:repo_reader.py


示例18: save

    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        
        if has_changed(self, 'image') and self.image:
            old = get_old_field_value(self, 'image', 'objects')
            
            if old is not None and len(old.name) > 0:
                root = settings.MEDIA_ROOT
                name = os.path.join(root, old.name)
                os.remove(name)

        super(Article, self).save(*args, **kwargs)
开发者ID:Aer-o,项目名称:zds-site,代码行数:12,代码来源:models.py


示例19: get_prod_path

 def get_prod_path(self):
     
     if self.chapter.tutorial:
         data = self.chapter.tutorial.load_json_for_public()
         mandata = tutorial.load_dic(data)
         if "chapter" in mandata:
             for ext in mandata["chapter"]["extracts"]:
                 if ext['pk'] == self.pk:
                     return os.path.join(settings.REPO_PATH_PROD,
                                         str(self.chapter.tutorial.pk) + '_' + slugify(mandata['title']),
                                         str(ext['pk']) + "_" + slugify(ext['title'])) \
                                         + '.md.html'
     else:
         data = self.chapter.part.tutorial.load_json_for_public()
         mandata = tutorial.load_dic(data)
         for part in mandata["parts"]:
             for chapter in part["chapters"]:
                 for ext in chapter["extracts"]:
                     if ext['pk'] == self.pk:
                         chapter_path = os.path.join(settings.REPO_PATH_PROD,
                                                     str(mandata['pk']) + '_' + slugify(mandata['title']),
                                                     str(part['pk']) + "_" + slugify(part['title']),
                                                     str(chapter['pk']) + "_" + slugify(chapter['title']),
                                                     str(ext['pk']) + "_" + slugify(ext['title'])) \
                                                     + '.md.html'
开发者ID:Ge0,项目名称:zds-site,代码行数:25,代码来源:models.py


示例20: edit

def edit(request):
    '''Edit article identified by given GET paramter'''
    try:
        article_pk = request.GET['article']
    except KeyError:
        raise Http404

    article = get_object_or_404(Article, pk=article_pk)
    json = article.load_json()

    # Make sure the user is allowed to do it
    if not request.user in article.authors.all():
        raise Http404

    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES)
        if form.is_valid():
            data = form.data
            old_slug = article.get_path()
            article.title = data['title']
            article.description = data['description']
            if 'image' in request.FILES:
                article.image = request.FILES['image']

            article.subcategory.clear()
            for subcat in form.cleaned_data['subcategory']:
                article.subcategory.add(subcat)

            article.save()

            new_slug = os.path.join(settings.REPO_ARTICLE_PATH, slugify(data['title']))
            
            maj_repo_article(request,
                          old_slug_path=old_slug, 
                          new_slug_path=new_slug, 
                          article=article, 
                          text=data['text'],
                          action = 'maj')
            
            return redirect(article.get_absolute_url())
    else:

        form = ArticleForm({
            'title': json['title'],
            'description': json['description'],
            'text': article.get_text(),
            'subcategory': article.subcategory.all(),
        })

    return render_template('article/edit.html', {
        'article': article, 'form': form
    })
开发者ID:ChantyTaguan,项目名称:zds-site,代码行数:52,代码来源:views.py



注:本文中的zds.utils.slugify函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python utils.qname_attr函数代码示例发布时间:2022-05-26
下一篇:
Python utils.render_template函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap