Возврат AJAX-сообщения после просмотра - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть проект Django, в который я загружаю файлы на сервер sql. Я хотел бы показать только текстовое сообщение, когда операция была выполнена успешно, без обновления страницы

Мне не удалось связать представление с формой AJAX и HTML.

views.py:

def upload(request):
    if request.method == "POST":
        try:
            form = UploadFileForm(request.GET, request.FILES["excel_file"])
            file =  request.FILES['excel_file']
            Import_Resource = resources.modelresource_factory(model=item)()
            dataset =  tablib.Dataset()
            if not file.name.endswith('.xlsx'):
                messages.error(request, 'This is not a excel file!')
            if filename1 in file.name:
                imported_data = dataset.load(file.read(), format='xlsx')
                item.objects.filter(input_type = 'traitement').delete()
                for row in dataset:
                    ITEM2 = item()
                    ITEM2.input_type = 'traitement'
                    ITEM2.no_incident = row[1]
                    ITEM2.action = row[2]
                    ITEM2.week = row[4]
                    ITEM2.status = row[5]
                    ITEM2.assigned_by_group = row[6]
                    ITEM2.description = row[0]
                    ITEM2.previous_group = row[7]
                    if isinstance(row[3], float):
                        ITEM2.date_action = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + int(row[3]) - 2)
                    else:
                        ITEM2.date_action = row[3]
                    if isinstance(row[8], float):
                        ITEM2.date_end = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + int(row[8]) - 2)
                    else:
                        ITEM2.date_end = row[8]
                    ITEM2.save()
    data = {
        'file': file.name
    }
    return JsonResponse(data)

urls.py: url(r'^input/$', views.inputprocess, name='inputprocess'), html файл:

    <form action="{% url "upload" %}" method="POST" enctype="multipart/form-data" class="form-inline" style="margin-left: 50px">
        <div class="form-group mb-2">
            {% csrf_token %}
            <input type="file" name="excel_file" id="excel_file" required="True">
        </div>
        <div class="form-group mb-2">
            <button class="btn btn-primary" id="likebutton2"> <span class="glyphicon glyphicon-upload"></span>Upload</button>
        </div>
        <div>
            {% if messages %}
            {% for message in messages %}
                {{ message }}
            {% endfor %}
            {% endif %}
        </div>
    </form>
      <script type="text/javascript">
    $('.likebutton').click(function(){
    var catid;
    catid = $(this).attr("data-catid");
    $.ajax(
    {
        type:"GET",
        url: "/upload",
        dataType: 'json',
        success: function(data) 
        {
            alert(data.filename);
        }
     })
});
</script>

Теперь он возвращает пустую страницу с именем файла. Я хотел бы, чтобы он возвращал предупреждение с именем файла, не обновляя страницу. Любая помощь будет в основном оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...