Django - 生成最短的随机slug

时间:2017-01-10 22:34:37

标签: python django random unique slug

如何生成由最少量字符组成的随机段塞。 我试试这个。

import random
import string

u_id = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8))

和模型

class Articles(models.Model):
    slug = models.CharField(max_length=6)

我如何在模特中做到这一点?生成slug,检查是否可用并设置。 我想要创建1到6个字符的短片段,对我来说最好的是从1个字母的slugs开始。

1 个答案:

答案 0 :(得分:2)

在基本级别,你可以这样做:

import random
import string 

def rand_slug():
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(6))


class Articles(models.Model):
    slug = models.CharField(max_length=6, unique=True, default=rand_slug())

以上将生成一个长度为6个字符的随机slug。通过在模型上使用unique=True,它将确保没有其他Article对象具有该slug。

如果您想采用更高级的方法,我建议您通过编写自己的create方法在模型管理器中生成此slug。然后,您可以使随机slug具有动态大小值,字符集等。