from copy import deepcopy
def copy_instance_state(src_obj, dst_obj, field_map={}):
for src_field_name in dir(src_obj):
if src_field_name.startswith('__'):
continue
dst_field_name = src_field_name if src_field_name not in field_map else field_map[src_field_name]
setattr(dst_obj, dst_field_name, deepcopy(getattr(src_obj, src_field_name)))
class A:
a = 1
b = 2
c = 3
class B:
a = 0
b = 0
z = 0
a = A()
b = B()
copy_instance_state(a, b, {'c': 'z'})
class PostList(generics.ListCreateAPIView):
def get_permissions(self):
if self.request.method == 'GET':
perms = [GetPermission]
else:
perms = [NotGetPermission]
return [p() for p in perms]
Понятно, что решение красотой не блещет, это, что называется, низкий уровень. Но в основе всех улучшений будет лежать именно этот принцип if user.has_perm('your_app.can_edit_meta'):
# good mojo
else:
# bad mojo
[2012-09-04 12:45:36 - android-blablabla] (new resource id sherlock_spinner_item from C:\workspace\mobile\android-blablabla\trunk\abs\res\layout\sherlock_spinner_item.xml)
[2012-09-04 12:45:44 - android-blablabla] (new resource id sherlock_spinner_item from C:\workspace\mobile\android-blablabla\trunk\abs\res\layout-v14\sherlock_spinner_item.xml)