3

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

 foo/help/
 bar/help-1/

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

foo/help/
bar/help/
etc/help/
etc/help-1/

我也在考虑以同样的方式拥有一些对用户来说是独一无二的页面。它们将始终作为用户的子用户访问,从而使它们以这种方式独一无二

4

1 回答 1

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"), 
        ) 

然后,如果您有一些自动生成/预填充 slug 字段的代码,则必须手动对其进行调整以处理类别...

于 2013-06-28T10:49:14.393 回答