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 スラッグを処理するように処理することを検討しましたが、ハイフンを削除して max_length 属性を配置する方法が見つかりません。

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

0

save メソッドをオーバーライドし、保存時に概要フィールドにデータを入力する必要があります。これにより、summary がテキスト フィールドの最初の 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 に答える