Как предварительно отформатировать строку для отображения гиперссылки во фронтенде с помощью django
У меня есть модель, в которой я принимаю строковые данные в поле char. это заполняется через поле администратора Django.
Models.py
class Test(models.Model):
overview = models.CharField(max_length=10000, null=True, blank=False)
views.py
from .models import Test
def testView(request):
data = Test.objects.all()
return render(request, 'abc.html', {'data': data})
мой шаблон, в котором есть html
<p style="text-align: center; color: black">{{data.overview | linebreaks}}</p>
этот имитационный ответ данных:
"with the great power comes the great responsibility.
<a href="https://www.google.co.in/">connect</a>" from backend.
как показать это как ссылку внутри абзаца в front end.
ссылка может присутствовать в любом месте абзаца, как указано в тексте в django-admin
в настоящее время вместо ссылки отображается весь тег якоря
Ваш вопрос недостаточно ясен.
Однако. Для ссылок можно использовать URLField
вместо CharField
.
Преобразует URL и адреса электронной почты в текст.
Если вы не уверены, где в тексте может находиться ссылка, используйте RegEx:
url_re = re.compile(r'^www.[a-zA-z$#./?=:;+&@{}|,%<>~0-9]*', re.IGNORECASE)
words = word_split_re.split(str(text))
for i, word in enumerate(words):
if '.' in word or '@' in word or ':' in word:
lead, middle, trail = '', word, ''
lead, middle, trail = trim_punctuation(lead, middle, trail
if url_re.match(middle):
url = smart_urlquote('http://%s' % html.unescape(middle))
klass = "js-css-class"