【问题标题】:How to perform function after file upload in admin page..?在管理页面中上传文件后如何执行功能..?
【发布时间】:2014-10-23 09:47:03
【问题描述】:

我的data_report 函数只是解析 xml 文件并将这些值保存到数据库中。但要求是管理员只能上传excel 文件。

所以问题是……

  1. 如果管理员可以将文件上传到服务器,我该如何处理文件?..(之后 保存..?)
  2. admin urlhttp://localhost.com:8000/admin/reports/可以重定向到功能页面..?

下面的代码用于管理/报告

def get_admin_urls(urls):
    def get_urls():
        my_urls = patterns('',
            (r'^reports/$', admin.site.admin_view(data_report))
        )
       return my_urls + urls
    return get_urls

admin_urls = get_admin_urls(admin.site.get_urls())
admin.site.get_urls = admin_urls

又是一个问题……

  • 如何在管理应用页面中添加链接..
  • 我不知道如何在文件上传后重定向到管理页面..?

但你知道链接是什么,但我无法访问这里没有其他管理页面,错误是

Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': u'default'}' not found. 1 pattern(s) tried: [u'admin/(?P<app_label>auth|dsp|sites)/$']

能帮我解决这个问题吗..?

【问题讨论】:

    标签: python django


    【解决方案1】:

    据我了解,uploading 在您的情况下是指选择一个文件并点击管理员中的save 按钮,对吗?

    在这种情况下,您可以覆盖此模型的保存方法,然后该方法应解析并保存到其他模型或自身等中

    class MyModelAdmin(admin.ModelAdmin):
    
      def save_model(self, request, obj, form, change):
          xmlfile = form.cleaned_data['your_xmlfile_fieldname'] 
          # parse and stuff
          obj.save()
    

    【讨论】:

    • 所以你是说不需要在views.py中写data_report函数..?
    • 只需解析models.py本身中的xml并调用db并保存...是这样吗?
    • @HelloWorld 是的,但请确保这不是一个普通的模型类,这是位于 admin.py 中的 modeladmin 类看这里docs.djangoproject.com/en/dev/ref/contrib/admin/…
    • 这里似乎有很多错误..告诉我如何获取文件路径?或插入 ID ..?
    • 好的,我正在使用 obj.id 获取 id,但 foranalyse = Reports.objects.get(pk=obj.id) ... 只给我错误 obj not defined
    猜你喜欢
    • 2017-03-27
    • 2010-11-05
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多