Skip to content

Commit 0daba7c

Browse files
committed
Fix django 2.0 compatibility
1 parent b4916ea commit 0daba7c

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ MANIFEST
77
*egg*
88
*.bak
99
*.tmproj
10+
.idea

Diff for: genericadmin/admin.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
except ImportError:
2424
from django.contrib.admin.options import IS_POPUP_VAR
2525
from django.core.exceptions import ObjectDoesNotExist
26+
from django.views.generic import RedirectView
2627

2728
JS_PATH = getattr(settings, 'GENERICADMIN_JS', 'genericadmin/js/')
2829

@@ -63,7 +64,12 @@ def get_generic_field_list(self, request, prefix=''):
6364
fields['prefix'] = prefix
6465
field_list.append(fields)
6566
else:
66-
for field in self.model._meta.virtual_fields:
67+
# virtual_fields were deprecated in django 2.0
68+
try:
69+
fields = self.model._meta.virtual_fields
70+
except AttributeError:
71+
fields = self.model._meta.private_fields
72+
for field in fields:
6773
if isinstance(field, GenericForeignKey) and \
6874
field.ct_field not in exclude and field.fk_field not in exclude:
6975
field_list.append({
@@ -90,6 +96,10 @@ def wrapper(*args, **kwargs):
9096
custom_urls = [
9197
url(r'^obj-data/$', wrap(self.generic_lookup), name='admin_genericadmin_obj_lookup'),
9298
url(r'^genericadmin-init/$', wrap(self.genericadmin_js_init), name='admin_genericadmin_init'),
99+
100+
# to work with django 2.0
101+
url(r'../genericadmin-init/change/$',
102+
wrap(RedirectView.as_view(pattern_name='%s:admin_genericadmin_init' % self.admin_site.name))),
93103
]
94104
return custom_urls + super(BaseGenericModelAdmin, self).get_urls()
95105

0 commit comments

Comments
 (0)