2014-10-23 2 views
0

Функция data_report просто проанализирует XML-файл и сохранит это значение в базе данных, которая есть. Но требование - только администратор может загрузить файл excel.Как выполнить функцию после загрузки файла на странице администратора ..?

Таким образом, вопрос ...

  1. если администратор может загрузить файл на сервер, как я могу обработать файл? .. (после сохранить ..?)
  2. Администратор URL http://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)/$'] 

может помочь мне решить эту проблему? ..

ответ

0

Как я понимаю, 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() 
+0

Итак, вы говорите, что нет необходимости писать 'data_report' функции в views.py ..? –

+0

просто разобрать xml в models.py и вызвать db и сохранить ... это что? –

+0

@HelloWorld да, но убедитесь, что это не нормальный класс модели, это класс modeladmin, который находится в admin.py, посмотрите здесь https://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin -объекты – doniyor

Смежные вопросы