自动创建TextField的摘要

时间:2013-05-17 02:07:12

标签: python django model

我正在尝试创建博客帖子对象的摘要字段。我希望字段根据输入到上面的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属性。

任何帮助都会很棒!

1 个答案:

答案 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)