diff --git a/src/base/models.py b/src/base/models.py index d7998e3..dd53276 100644 --- a/src/base/models.py +++ b/src/base/models.py @@ -2,6 +2,7 @@ from django.utils.translation import gettext_lazy as _ from linkpreview import LinkPreview, link_preview from models_extensions.models import TimeStampedModel +from requests.exceptions import HTTPError from base.tools import get_class_by_name, split_class_name @@ -116,4 +117,9 @@ def get_preview(self) -> LinkPreview: :return: A dictionary containing information about the link preview, including title, description, and image. :rtype: dict """ - return link_preview(self) + try: + return link_preview(self) + except HTTPError: + return { + 'description': _('No description available'), + } diff --git a/src/templates/signals/signal_detail.html b/src/templates/signals/signal_detail.html index 8801aac..92d3d65 100644 --- a/src/templates/signals/signal_detail.html +++ b/src/templates/signals/signal_detail.html @@ -227,17 +227,30 @@
Related links
- {% for link in signal.links.all %} - {% if link.link_type != 'example_url' %} - - {% endif %} - {% endfor %} + + + + + + + + + + {% for link in signal.links.all %} + {% if link.link_type != 'example_url' %} + + + + + + {% endif %} + {% endfor %} + +
Link TypeLink DescriptionURL
+ {{ link.get_link_type_display }} + {{ link.get_preview.description }} + {{ link.url|truncatechars:50 }} +