Джанго нужен первый параграф

Я создал модель со своими постами. файл blog/models.py:

import datetime

from ckeditor.fields import RichTextField
from django.db import models


class Post(models.Model):
    name = models.CharField(max_length=250)
    content = RichTextField()
    date = models.DateField(default=datetime.date.today)

и в базе данных у меня есть такая запись:

<p>First paragraph</p>

<p>Second paragraph</p>

<p>Third paragraph</p>

<p>etc</p>

<p>...</p>

Как я могу получить результат First paragraph ТОЛЬКО

Вы можете работать с BeautifulSoup и сделать свойство, которое будет возвращать HTML-содержимое первого абзаца. Сначала вы устанавливаете beautifulsoup с помощью:

pip3 install beautifulsoup4

тогда мы можем определить свойство, которое реализует логику извлечения первого тега <p>:

from bs4 import BeautifulSoup

class Post(models.Model):
    name = models.CharField(max_length=250)
    content = RichTextField()
    date = models.DateField(auto_now_add=True)

    def first_paragraph(self):
        bs = BeautifulSoup(self.content)
        return str(bs.find('p'))
Вернуться на верх