【问题标题】:django admin custom template page not found errordjango admin 自定义模板页面未找到错误
【发布时间】: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

【问题讨论】:

    标签: django django-templates django-admin django-views


    【解决方案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/
    猜你喜欢
    • 2013-12-30
    • 2012-03-05
    • 1970-01-01
    • 2012-03-15
    • 2013-05-18
    • 2017-07-25
    • 2011-03-25
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多