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 自定义模板页面未找到错误的主要内容,如果未能解决你的问题,请参考以下文章

自定义注销页面未登陆

根据值在 Admin 中自定义 Django 表单字段

Django-Admin:集成自定义表单

django的admin界面怎么没有样式

Django admin - 如何获取模板标签中的所有注册模型?

在 django 管理页面上添加链接和按钮