def handle(self, *args, **options): if len(args) != 1: raise CommandError("This command takes exactly one argument") try: f = open(args[0], "r") u = update.wurfl(f) f.close() print "-- %s Update --" % u.get_update_type_display() print u.summary except Exception, e: if options.get("traceback", False): import traceback traceback.print_exc() else: raise CommandError(e)
def update_wurfl_view(self, request): if not self.has_add_permission(request): raise PermissionDenied context = RequestContext(request) opts = self.model._meta app_label = opts.app_label context.update({ 'opts': opts, 'root_path': getattr(self.admin_site, 'root_path', None), 'has_add_permission': self.has_add_permission(request), 'current_app': self.admin_site.name, 'app_label': app_label, 'original': 'Import', 'model_admin': self }) if request.method == 'GET': form = WurflImportForm() else: form = WurflImportForm(data=request.POST, files=request.FILES) if form.is_valid(): temp_file = tempfile.NamedTemporaryFile(mode='w+b', delete=True) for chunk in request.FILES['xml_file'].chunks(): temp_file.write(chunk) temp_file.seek(0) stats = update.wurfl(temp_file.name) temp_file.close() self.message_user(request, "%s %s: %s" % (stats.get_update_type_display(), _(' updated successfully'), mark_safe(stats.summary))) return HttpResponseRedirect(reverse('admin:wurfl_update_changelist')) context['media'] = self.media + form.media context['adminform'] = form return render_to_response('admin/wurfl/import.html', context)