diff --git a/vips_messages/models.py b/vips_messages/models.py index 7916ab2dab6c14a54f564c9c3b08228f6e441eb2..db68ec07a333a7ca30fc7156b079b07ca1b433f2 100755 --- a/vips_messages/models.py +++ b/vips_messages/models.py @@ -102,7 +102,9 @@ class Message: @staticmethod def get_message(message_id, current_language=settings.VIPSLOGIC_LANGUAGE_CODE): message_json = Message.get_message_as_json(message_id) - return Message.get_instance_from_dict(message_json, current_language) + if message_json is not None: + return Message.get_instance_from_dict(message_json, current_language) + return None @staticmethod def get_messages_by_tag(tag_id, current_language=settings.VIPSLOGIC_LANGUAGE_CODE): @@ -138,7 +140,10 @@ class Message: @staticmethod def get_message_as_json(message_id): request_result = requests.get("%s://%s/rest/message/%s" % (settings.VIPSLOGIC_PROTOCOL, settings.VIPSLOGIC_SERVER_NAME,message_id)) - return request_result.json() + if request_result.status_code == 200: + return request_result.json() + return None + @staticmethod def get_instance_from_dict(the_dict,current_language=settings.VIPSLOGIC_LANGUAGE_CODE): diff --git a/vips_messages/views.py b/vips_messages/views.py index 54e0d2e9441265b0b634a65825aa49f8d142f727..67e203825773d6b64d1412d8ab3887851348ab0a 100755 --- a/vips_messages/views.py +++ b/vips_messages/views.py @@ -23,7 +23,7 @@ import json from django.shortcuts import render from django.utils import translation -from django.http import HttpResponse +from django.http import HttpResponse, Http404 from vips_messages.models import Message from vips_messages.forms import MessagePublishedDateFilterForm @@ -57,11 +57,14 @@ def index(request): return render(request, 'messages/index.html', context) def detail(request, message_id): - context = { - #'message' : get_object_or_404(Message, pk=message_id) - 'message': Message.get_message(message_id, translation.get_language()) - } - return render(request, 'messages/detail.html', context) + message = Message.get_message(message_id, translation.get_language()) + if message is not None: + context = { + #'message' : get_object_or_404(Message, pk=message_id) + 'message': Message.get_message(message_id, translation.get_language()) + } + return render(request, 'messages/detail.html', context) + raise Http404("This page does not exist") # Send messages as JSON # TODO: Skip intermediary Python object, get json directly from VIPSLogic