0

我正在尝试创建博客文章对象的摘要字段。我希望该字段根据输入到上面的 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 slug 一样处理它,但我找不到摆脱连字符并在其上放置 max_length 属性的方法。

任何帮助都会很棒!

4

1 回答 1

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)
于 2013-05-17T02:18:55.603 回答