是否可以让Django slugfield对每个用户或其他模型都是唯一的

Des*_*023 2 django slug

我正在建立一个网站,其中"网页"始终位于父级"类别"中.某些页面将具有相同的标题,但将驻留在不同的类别中.目前django sluggify总是在slug中添加数字,如果名称相同:

 foo/help/
 bar/help-1/
Run Code Online (Sandbox Code Playgroud)

有没有办法让它输出一个更智能的slug,以便slug对于该类别中的页面是唯一的.

foo/help/
bar/help/
etc/help/
etc/help-1/
Run Code Online (Sandbox Code Playgroud)

我也想以同样的方式为用户提供一些独特的页面.它们将始终作为用户的子对象进行访问,从而使它们以这种方式独特

bru*_*ers 5

slugify函数本身(django.template.defaultfilters.slugify)只所以这不是什么让你这样的结果适用于它的输入.

wrt /您的原始问题,即"是否可能为每个用户或其他模型设置一个独特的slugfield",这只是unique_together在您的模型中声明相关字段的问题Meta,即

class Category(models.Model):
    # code here

class Page(models.Model):
    category = models.ForeignKey(Category)
    slug = models.SlugField("slug")

    class Meta:
        unique_together = (
            ("category", "slug"), 
        ) 
Run Code Online (Sandbox Code Playgroud)

然后,如果你有一些自动生成/预填充段塞字段的代码,你必须手动调整它来处理类别...