Skip to main content
 首页 » 编程设计

python之带有两个/三个字母单词的 Django 预填充字段

2024年08月30日30over140

在我的 admin.py 文件中,我试图使用 Prepopulated_fields 来自动添加标题。然而,短的两个字母词似乎有问题。当我输入“Is”、“the”或“to”时,它会将其从 slug 中删除。我也试过“之前”,第二次我按下 E 按钮,它也消失了。这是预填充字段的预期还是我做错了什么?

模型.py

title = models.CharField(max_length=255) 
entry = models.TextField()     
date_edited = models.DateTimeField(auto_now=True, verbose_name = "Last edited") 
date_posted = models.DateTimeField(verbose_name="Post Date") 
slug = models.SlugField(max_length=255, unique=True) 

管理员.py

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

请您参考如下方法:

正如@Alasdair 在他的回答中所说,当您使用 prepoulated_fields 时,有些词会被忽略。我没有覆盖处理这些词的 js 文件,而是将 slug 字段从 save_model 中的标题中转过来。

def save_model(self, request, obj, form, change):         
    if not change: 
        obj.slug = slugify(('%s') % obj.title) 
    obj.save()