我正在尝试创建博客帖子对象的摘要字段。我希望字段根据输入到上面的TextField(文本)中的文本进行预填充。例如,如果我写一篇500字的博客文章。我希望摘要字段预先填充前100个单词。
请参阅下面的我的型号:
class Post(models.Model):
title = models.CharField(max_length=100)
pub_date = models.DateTimeField()
cover_photo = models.ImageField(upload_to='coverphotos/')
text = models.TextField()
summary = models.CharField(max_length=200)
slug = models.SlugField(max_length=40, unique=True)
我研究处理它就像处理URL slugs一样,但我找不到摆脱连字符的方法并在其上放置一个max_length属性。
任何帮助都会很棒!
答案 0 :(得分:0)
您需要覆盖保存方法,并在保存时填充摘要字段。这应该汇总文本字段的前100个字符。
class Post(models.Model):
title = models.CharField(max_length=100)
pub_date = models.DateTimeField()
cover_photo = models.ImageField(upload_to='coverphotos/')
text = models.TextField()
summary = models.CharField(max_length=200)
slug = models.SlugField(max_length=40, unique=True)
def save(self, *args, **kwargs):
if self.text:
self.summary = self.text[:100]
super(Post, self).save(*args, **kwargs)