有没有一种简单的方法从CharField填充SlugField?

2024-04-26 13:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

class Foo(models.Model):
    title = models.CharField(max_length=20)
    slug = models.SlugField()

有没有一种内置的方法让slug字段根据标题自动编写?可能是在行政部门内部,也可能是在行政部门外部。


Tags: 方法标题modelfootitlemodelslength内置
3条回答

对于Django 1.0及更高版本的管理员,您需要使用

prepopulated_fields = {'slug': ('title',), }

在您的admin.py中

预填充字段字典中的键是要填充的字段,值是要连接的字段的元组。

在管理之外,您可以在视图中使用slugify函数。在模板中,可以使用|slugify过滤器。

还有这个包会自动处理这个问题:https://pypi.python.org/pypi/django-autoslug

在管理员之外,请参见this django snippet。把它放在.save()中,它将处理以编程方式创建的对象。在管理员内部,正如其他人所说,使用prepopulated_fields

对于1.0之前的版本:

slug = models.SlugField(prepopulate_from=('title',))

应该工作得很好

对于1.0,使用camflan's

相关问题 更多 >