gpt4 book ai didi

Django ModelAdmin.get_urls() 未注册自定义 url

转载 作者:行者123 更新时间:2023-12-04 16:44:11 26 4
gpt4 key购买 nike

我正在尝试在 Django 管理站点中为我的模型创建自定义 View 。我为名为 Document 的模型创建了 ModelAdmin,如下所示:

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')

根据the docs (v2.1) 我应该能够使用 /admin/my_app/document/my-view 访问 my_view 但是当我尝试访问此 URL 时,django 会将我重定向到管理员带有以下警告的主页:

Document with ID "my-view" doesn't exist. Perhaps it was deleted?

所以看起来 django 看不到我的自定义 url。我错过了什么?我怎样才能让它工作?

最佳答案

这只是 URL 排序的问题;首先处理通用管理员更改 View ,并将您对“我的 View ”的请求捕获为 slug。您可以通过将您的网址放在首位来更改此设置,这就是您链接到的示例中实际完成的操作:

return custom_urls + urls

关于Django ModelAdmin.get_urls() 未注册自定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com