Minor upgrades and test fixes.
[wolnelektury.git] / src / api / fields.py
index 278af6a..7283234 100644 (file)
@@ -1,9 +1,9 @@
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 from rest_framework import serializers
 from sorl.thumbnail import default
-from django.core.urlresolvers import reverse
+from rest_framework.reverse import reverse
 from club.models import Membership
 
 
@@ -17,19 +17,20 @@ class AbsoluteURLField(serializers.ReadOnlyField):
         if view_args:
             for v in view_args:
                 fields = v.split(':', 1)
-                self.view_args[fields[0]] = fields[1] if len(fields)>1 else fields[0]
+                self.view_args[fields[0]] = fields[1] if len(fields) > 1 else fields[0]
 
     def to_representation(self, value):
+        request = self.context['request']
         if self.view_name is not None:
             kwargs = {
                 arg: getattr(value, field)
                 for (arg, field) in self.view_args.items()
             }
-            value = reverse(self.view_name, kwargs=kwargs)
-        return self.context['request'].build_absolute_uri(value)
+            return reverse(self.view_name, kwargs=kwargs, request=request)
+        return request.build_absolute_uri(value)
 
 
-class LegacyMixin(object):
+class LegacyMixin:
     def to_representation(self, value):
         value = super(LegacyMixin, self).to_representation(value)
         non_null_fields = getattr(getattr(self, 'Meta', None), 'legacy_non_null_fields', [])