如何 auto-update Django 管理站点中的 slug 字段?
How to auto-update the slug field in Django admin site?
我知道如何从 post 的标题 auto-populate 我的博客应用程序的 slug 字段,它工作正常。
但是如果我编辑标题,slug 字段不会改变。
有什么办法让它自动更新吗?
我使用 Django 的管理站点。
谢谢。
@Omid Shojaee-看看下面的代码。您可以使用 prepopulated_fields
class CategoryAdmin(admin.ModelAdmin):
list_display = (
"id",
"name",
"slug",
"is_active",
)
prepopulated_fields = {"slug": ("name",)}
from django.utils.text import slugify
class Category(models.Model):
category_name = models.CharField(max_length=100)
slug_category = models.SlugField(default='',editable=False, null=True,blank=True,max_length=250)
def __str__(self):
return "%s" %(self.category_name)
def save(self, *args, **kwargs):
value = self.category_name[0:250]
self.slug_category = slugify(value, allow_unicode=True)
super().save(*args, **kwargs)
可能这有用..
我知道如何从 post 的标题 auto-populate 我的博客应用程序的 slug 字段,它工作正常。
但是如果我编辑标题,slug 字段不会改变。
有什么办法让它自动更新吗?
我使用 Django 的管理站点。
谢谢。
@Omid Shojaee-看看下面的代码。您可以使用 prepopulated_fields
class CategoryAdmin(admin.ModelAdmin):
list_display = (
"id",
"name",
"slug",
"is_active",
)
prepopulated_fields = {"slug": ("name",)}
from django.utils.text import slugify
class Category(models.Model):
category_name = models.CharField(max_length=100)
slug_category = models.SlugField(default='',editable=False, null=True,blank=True,max_length=250)
def __str__(self):
return "%s" %(self.category_name)
def save(self, *args, **kwargs):
value = self.category_name[0:250]
self.slug_category = slugify(value, allow_unicode=True)
super().save(*args, **kwargs)
可能这有用..