您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Django中的Slugify字符串

5b51 2022/1/14 8:22:31 python 字数 3113 阅读 547 来源 www.jb51.cc/python

我开发了一个表单,用户添加了他/她的名字和姓氏. 对于用户名(唯一属性),我设计了以下方法: 名字:harrY姓氏:PottEr – >用户名:Harry-Potter 名字:HARRY姓氏:POTTER – >用户名:Harry-Potter-1 名字:harrY姓氏:PottEr – >用户名:Harry-Potter-2 等等.. 这是我的函数定义: def return_slug(firs

概述

对于用户名(唯一属性),我设计了以下方法

名字:harrY姓氏:PottEr – >用户名:Harry-Potter

名字:HARRY姓氏:POTTER – >用户名:Harry-Potter-1

名字:harrY姓氏:PottEr – >用户名:Harry-Potter-2

等等..

这是我的函数定义:

def return_slug(firstname,lastname):
    u_username = firstname.title()+'-'+lastname.title()         //Step 1
    u_username = '-'.join(u_username.split())                     //Step 2
    count = User.objects.filter(username=u_username).count()    //Step 3
    if count==0:
        return (u_username)
    else:
        return (u_username+'-%s' % count)

我无法弄清楚在执行第3步之前要做什么.我应该把[:len(u_username)]放在哪里比较字符串?

编辑:

如果存在多个Harry-Potter实例,则通过解决最后添加整数的问题来应用此方法.我的问题是:我将如何检查附加到Harry-Potter的最后一个整数是多少.

from django.utils.text import slugify

def return_slug(firstname,lastname):

    # get a slug of the firstname and last name.
    # it will normalize the string and add dashes for spaces
    # i.e. 'HaRrY POTTer' -> 'harry-potter'
    u_username = slugify(unicode('%s %s' % (firstname,lastname)))

    # split the username by the dashes,capitalize each part and re-combine
    # 'harry-potter' -> 'Harry-Potter'
    u_username = '-'.join([x.capitalize() for x in u_username.split('-')])

    # count the number of users that start with the username
    count = User.objects.filter(username__startswith=u_username).count()
    if count == 0:
        return u_username
    else:
        return '%s-%d' % (u_username,count)

总结

以上是编程之家为你收集整理的python – Django中的Slugify字符串全部内容,希望文章能够帮你解决python – Django中的Slugify字符串所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶