Джанго нужен первый параграф
Я создал модель со своими постами. файл 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'))