Django slug自增长方法

前两天做项目用到了slug,每次添加国家标签的时候,都要用不重复的数字或者字母,感觉特别麻烦。

其实无论是数字还是字母,只要是不重复就好。

网上有的说是中文翻译成英文、数字用随机函数生成等待(个人感觉不太好使。。)

不知道你们是否留意:当用Django存数据库的时候,id是不会重复的!!

直接将id和slug绑死就好了

解决方案:

先存将数据存入数据库,产生id后,在提取id更新slug(绑死这块,希望有人能给更好的解决方案)

#先插入数据
new_country = Country()
new_country.name = '美国'
new_country.slug = 'example' #slug暂时用example
new_country.save()

#其次更新数据
oldcountry = Country.objects.get(name='美国')
oldcountry.slug = oldcountry.id  #slug==id
oldcountry.save()

后续更新了..

新的解决方法就是 在Class Admin里面继承一个save_model函数

@admin.register(Content)
class ContentAdmin(admin.ModelAdmin):
    list_display = ('name', 'slug', 'content')

    # 不手动填写slug
    exclude = ['slug', ]

    def save_model(self, request, obj, form, change):
        obj.slug = obj.id
        super().save_model(request, obj, form, change)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值