我见过各种不同的方法来生成独特的 slug:例如。1,例2 ,例。3,例如。4等等等等
我想在保存 ModelForm 时创建独特的 slug。如果我的模型是这样的:
class Phone(models.Model):
user = models.ForeignKey(User)
slug = models.SlugField(max_length=70, unique=True)
year = models.IntegerField()
model = models.ForeignKey('Model')
series = models.ForeignKey('Series')
假设该Phone
对象具有以下值(通过提交的 ModelForm):
Phone.user = dude
Phone.year = 2008
Phone.model = iphone
Phone.series = 4S
我希望这个对象的 url 看起来像:
http://www.mysite.com/phones/dude-2008-iphone-4S
我知道我应该slugify
通过信号或覆盖保存方法来实现这一点。但是如果用户dude
创建了第二个 2008 iphone 4S 对象,那么为这个对象创建一个独特的 slug 的最佳方法是什么?我希望其他对象的 url 看起来像:
http://www.mysite.com/phones/dude-2008-iphone-4S-2
和
http://www.mysite.com/phones/dude-2008-iphone-4S-3
http://www.mysite.com/phones/dude-2008-iphone-4S-4
#...etc ...
谷歌搜索后,似乎有多种不同的方法可以在 django 中创建 slug,这在试图找出最佳实践时一直令人困惑。
非常感谢您对此问题的任何建议和澄清!