uma*_*mat 3 django django-admin
我正在尝试在 Django 管理站点中为我的模型创建自定义视图。我ModelAdmin为我的模型创建了Document这样的名字:
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')
Run Code Online (Sandbox Code Playgroud)
根据文档(v2.1),我应该能够访问my_view,/admin/my_app/document/my-view但是当我尝试访问此 URL 时,django 将我重定向到管理员主页,并显示以下警告:
Document with ID "my-view" doesn't exist. Perhaps it was deleted?
Run Code Online (Sandbox Code Playgroud)
所以看起来 django 看不到我的自定义网址。我错过了什么?我怎样才能让它发挥作用?
这只是 URL 排序的问题;通用管理员更改视图首先被处理,并将您对“我的视图”的请求作为一个slug 捕获。您可以通过将您的 URL 放在首位来更改此设置,这是您链接到的示例中实际完成的操作:
return custom_urls + urls
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |