I am trying to create custom views for my models in Django admin site. I created ModelAdmin for my model named Document like this:
from django.http import HttpResponse
from django.urls import path
from django.contrib import admin
from my_app.models import Document
@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
def get_urls(self):
urls = super().get_urls()
custom_urls = [
path('my-view/', self.admin_site.admin_view(self.my_view))
]
return urls + custom_urls
def my_view(self, request):
return HttpResponse('test')
According to the docs (v2.1) I should be able to access my_view with /admin/my_app/document/my-view but when I try to visit this URL django redirects me to admin homepage with the following warning:
Document with ID "my-view" doesn't exist. Perhaps it was deleted?
So it looks like django cannot see my custom url. What am I missing? How can I get this to work?