I have created a custom view.
How can I insert the view into the admin?
For a normal admin class, we can just simply register it to the admin site:
class ListAdmin(admin.ModelAdmin): ... admin.site.register(List, ListAdmin)
I tried to override get_url in admin.py, question_list is the view:
class ListAdmin(admin.ModelAdmin): def list_view(self, request): return question_list(request) def get_urls(self): urls = super(ListAdmin, self).get_urls() list_urls = patterns('', r'^list/$', self.list_view()) return list_urls + urls admin.site.register(question_list, ListAdmin)
This is the question_list view:
def question_list(request): #questions = Question.objects.filter(topic__icontains = 1) questions = Question.objects.all() return render_to_response('admin/question_list.html', {'questions':questions}) question_list = staff_member_required(question_list)
I get 'function' object is not iterable error.
Thanks.
The most straightforward answer is "no". As the Django Book says, the admin is for "Trusted users editing structured content," in this case the structured content being models arranged in hierarchies and configured through settings.py.
Django's Docs clearly state that Django Admin is not made for frontend work.
To login to the site, open the /admin URL (e.g. http://127.0.0.1:8000/admin ) and enter your new superuser userid and password credentials (you'll be redirected to the login page, and then back to the /admin URL after you've entered your details).
Based on the information you provided you should check this part of Django's documentation:
Adding views to admin sites (note: the link is valid for version 1.5 since version 1.3 is not supported anymore - the solution is still valid).
Then you could check this blog post and this question for some further inspiration and details.
Based on your example I really don't get why you just don't use a regular ModelAdmin
with some filtering options:
class QuestionAdmin(admin.ModelAdmin): list_filter = ('topic',)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With