diff -r 644cf0d39b25 -r 42a64cbffdf5 src/cm/views/__init__.py --- a/src/cm/views/__init__.py Tue Dec 08 16:55:22 2009 +0100 +++ b/src/cm/views/__init__.py Tue Dec 08 16:56:04 2009 +0100 @@ -17,12 +17,25 @@ import simplejson import sys +def get_textversion_by_keys_or_404(textversion_key, adminkey=None, key=None): + try: + if not adminkey: + textversion = TextVersion.objects.get(key=textversion_key) + else: + textversion = TextVersion.objects.get(key=textversion_key, adminkey=adminkey) + if textversion.text.key == key: + return textversion + else : + raise Http404('Mismatch keys Text / TextVersion') + except TextVersion.DoesNotExist: + raise Http404('No TextVersion with such keys') + def get_text_by_keys_or_404(key, adminkey=None): try: if not adminkey: return Text.objects.get(key=key) else: - return Text.objects.get(key = key, adminkey = adminkey) + return Text.objects.get(key=key, adminkey=adminkey) except Text.DoesNotExist: raise Http404('No Text with such keys')