当前位置: 首页>>代码示例>>Python>>正文


Python utils.slugify函数代码示例

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


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


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