django admin 自定义模板页面未找到错误
Posted
技术标签:
【中文标题】django admin 自定义模板页面未找到错误【英文标题】:django admin custom template page not found error 【发布时间】:2015-04-12 10:11:51 【问题描述】:我正在尝试修改 django 管理界面,但我看不到自定义模板。
在 admin.py 文件中我添加了这个模型管理员
class FTPAdmin(admin.ModelAdmin):
def get_urls(self):
urls = super(FTPAdmin,self).get_urls()
my_urls = patterns('',
(r'^ftp/$',self.admin_site.admin_view(self.FTPView)))
return my_urls + urls
def FTPView(self, request):
form = FTPForm()
if request.method == 'POST':
if form.is_valid():
return HttpResponseRedirect('/admin/')
return render_to_response(request,'ftpform.html','form':form)
在我的项目文件夹中,我有一个带有自定义模板的管理子文件夹的模板文件夹 (/DjangoProjects/projectftp/templates/admin/ftp.html)
% extends "admin/base_site.html" %
% block title %My test upload% endblock %
% block content %
<form action="" method="post">
% csrf_token %
form.as_p
<input type="submit" value="Upload" />
</form>
% endblock %
在我的 settings.py 文件中,我更改了模板目录:
TEMPLATE_DIRS = (
BASE_DIR + '/templates/',
)
在我的 forms.py 中,我创建了一个简单的表单:
class ProcFTPForm(forms.Form):
anio = forms.IntegerField(required=True)
mes = forms.IntegerField(required=True)
def __init__(self, *args, **kwargs):
super(ProcFTPForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
我尝试在 url "ip:port/admin/ftp" 或 ip:port/admin/app_name/ftp 或 ip:port/ftp 中查看模板。
任何建议
提前致谢
更新
这是我的模型的代码:
class Lectura_FTP():
def leer_ftp(self):
cursor = connection.cursor()
sp = cursor.callproc("CARGA_LISTA_ARCHIVOS_PC")
cursor.close()
return sp
【问题讨论】:
【参考方案1】:您应该使用render
快捷方式而不是render_to_response
:
return render(request, 'ftpform.html', 'form': form)
或将render_for_response
调用改为:
return render_for_responce('ftpform.html', 'form': form,
context_instance=RequestContext(request))
更新:视图的url是ip:port/admin/app_name/model_name/ftp/
【讨论】:
我尝试了这两种方法,但没有找到相同的错误页面。这将是我必须放入浏览器 ip:port/admin/ftp 或什么的 url。顺便说一句,我正在使用一个名为 django-suit 的管理界面 正确的网址是ip:port/admin/app_name/model_name/ftp/
我尝试 'ip:port/admin/pc/lectura_ftp/ftp' 得到同样的错误。我添加了我的模型的代码
因为执行过程的类不是继承自models.Model我可以注册模型。如何访问该类或在管理文件中创建相同的类??
您有两个选择:1. 自定义管理站点:docs.djangoproject.com/en/1.7/ref/contrib/admin/… 或 2. 创建一个受@user_passes_test
装饰器保护的常规视图,并将其分配给urls.py
中的/admin/ftp/
。 以上是关于django admin 自定义模板页面未找到错误的主要内容,如果未能解决你的问题,请参考以下文章