Skip to content

Commit 10c3a25

Browse files
committed
Use ModelAdmin.opts for correct reverse in admin
Make sure to use ModelAdmin.opts in admin.py in order to get the correct app_label and model_name. This is important when a subclass (e.g. of Newsletter) is used.
1 parent 57ac58d commit 10c3a25

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

newsletter/admin.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,16 +168,17 @@ def submit(self, request, object_id):
168168
if submission.sent or submission.prepared:
169169
messages.info(request, _("Submission already sent."))
170170
change_url = reverse(
171-
'admin:newsletter_submission_change', args=[object_id]
171+
'admin:%s_%s_change' % (self.opts.app_label, self.opts.model_name), args = [object_id]
172172
)
173+
173174
return HttpResponseRedirect(change_url)
174175

175176
submission.prepared = True
176177
submission.save()
177178

178179
messages.info(request, _("Your submission is being sent."))
179180

180-
changelist_url = reverse('admin:newsletter_submission_changelist')
181+
changelist_url = reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name))
181182
return HttpResponseRedirect(changelist_url)
182183

183184
""" URLs """
@@ -305,9 +306,10 @@ def preview_text(self, request, object_id):
305306

306307
def submit(self, request, object_id):
307308
submission = Submission.from_message(self._getobj(request, object_id))
309+
opts = submission._meta
308310

309311
change_url = reverse(
310-
'admin:newsletter_submission_change', args=[submission.id])
312+
'admin:%s_%s_change' % (opts.app_label, opts.model_name), args=[submission.id])
311313

312314
return HttpResponseRedirect(change_url)
313315

@@ -439,7 +441,7 @@ def subscribers_import(self, request):
439441
form.cleaned_data['newsletter'].pk
440442

441443
confirm_url = reverse(
442-
'admin:newsletter_subscription_import_confirm'
444+
'admin:%s_%s_import_confirm' % (self.opts.app_label, self.opts.model_name)
443445
)
444446
return HttpResponseRedirect(confirm_url)
445447
else:
@@ -453,9 +455,8 @@ def subscribers_import(self, request):
453455

454456
def subscribers_import_confirm(self, request):
455457
# If no addresses are in the session, start all over.
456-
457458
if 'addresses' not in request.session:
458-
import_url = reverse('admin:newsletter_subscription_import')
459+
import_url = reverse('admin:%s_%s_import' % (self.opts.app_label, self.opts.model_name))
459460
return HttpResponseRedirect(import_url)
460461

461462
addresses = request.session['addresses']
@@ -488,7 +489,7 @@ def subscribers_import_confirm(self, request):
488489
)
489490

490491
changelist_url = reverse(
491-
'admin:newsletter_subscription_changelist'
492+
'admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name)
492493
)
493494
return HttpResponseRedirect(changelist_url)
494495
else:

0 commit comments

Comments
 (0)