【发布时间】:2020-06-17 06:38:30
【问题描述】:
我正在使用这个博客: https://medium.com/@adriennedomingus/adding-custom-views-or-templates-to-django-admin-740640cc6d42
无法在 Django Admin 中创建自定义模板视图。我收到django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet
如果我在 settings.py 中注释掉该应用程序,我会收到错误 admin.site.register(Template, TemplateAdmin) NameError: name 'Template' is not defined。
如果我从 django.templates 导入模板,我会得到 TypeError: 'type' object is not iterable
无法做到: 1) custom_admin_site.register & 2) models.Template 没有找到。表示模型中没有模板。
我在 admin.py 上有这个:
from django.contrib import admin
from django.db import models
from django.templates import Template
class TemplateAdmin(admin.ModelAdmin):
change_form_template = ‘admin/test_attempt.html’
admin.site.register(Template, TemplateAdmin)
如果我在 CustomAdminSite 注册,则会收到 register for model in model_or_iterable: TypeError: 'MediaDefiningClass' object is not iterable 错误:
CustomAdminSite.register(Template, TemplateAdmin)
# Even the following doesnot work
# custom_site_admin.register(Template, TemplateAdmin)
我在views.py上有这个:
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
def preview(self, request, object_id):
context = {}
context = {
**self.each_context(request),
'title': self.index_title,
# Unable to get this app_list as well
# 'app_list': app_list,
}
request.current_app = self.name
#load_template = request.path.split('/')[-1]
#template = loader.get_template('admin/' + load_template)
template = loader.get_template('admin/test_attempt.html')
return HttpResponse(template.render(context, request))
我在 urls.py 上有这个:
from .views import preview
class CustomAdminSite(admin.AdminSite):
def get_urls(self):
urls = super(CustomAdminSite, self).get_urls()
custom_urls = [
path(r’^admin/test/(?P<object_id>\d+)$’, self.admin_view(preview), name=”preview”),
]
return urls + custom_urls
我的 apps.py 上有这个:
class CustomAdminSiteConfig(AdminConfig):
default_site = 'batchexits.admin.CustomAdminSite'
我已经在我的 settings.py 注册应用中添加了这个:
'batchexits.admin.CustomAdminSiteConfig',
我读过这个: how to fix django admin "You don't have permission to view or edit anything."?
感谢任何帮助以使这项工作正常进行。
【问题讨论】:
-
django.templates.Template是什么?那是 Django 模型吗? -
我什至在源代码中都找不到对
django.templates.Template的引用。此外,admin.site.register(...)函数应该将模型类作为第一个参数,在你的情况下它不是 -
欢迎任何参考。即使我可以在 API 中找到模板。我已经看过 django 源代码,并且确定它不起作用。这个概念太神秘了。周围没有博客。现在看起来像一个没有任何文档的大象任务。
-
Arakkal Abu,第二个问题是 django 文档说它有效。所以我知道它会
-
from django.templates import Template你想在这里导入什么?通常admin.site.register(Template, TemplateAdmin)中的“模板”应该是模型类
标签: django django-templates django-admin