Как создать индикатор загрузки файла в Django? - PullRequest
1 голос
/ 28 сентября 2019

Я пытаюсь создать видеоблог, где пользователи смогут загружать свои видео.Я создал вид и форму для загрузки файла, а также настроил видеоплеер HTML5 в соответствии с некоторыми уроками.Теперь я хочу добавить индикатор загрузки файла, но не могу этого сделать из-за недостатка моих знаний в программировании.Я пытаюсь последние несколько дней.Я нашел несколько очень старых ответов о Stackoverflow, но их очень трудно понять.Я не хочу использовать какой-либо фреймворк начальной загрузки, потому что мой полный демонстрационный сайт был создан без какой-либо сторонней фреймворк.Я использую Python 3.6 , Django 2.2.5 , Postgresql 11 на Ubuntu 18.04 .Ребята, не могли бы вы увидеть мои коды ниже и помочь мне с самым простым способом решения проблемы?Заранее спасибо!

Вот форма сообщения:

{% extends 'base.html' %}

{% block content %}

<!-- GRID SYTEM BEGINS -->
<main id="content" class="main-area">
    <section class="detail-main-content">
        <div class="all-account">
            <h1>Create a new post</h1>
            <!-- form action should be blank always -->
            <form method="POST" action="" enctype="multipart/form-data">
                {% csrf_token %}
                {{ form.as_p }}
                <button type="submit">POST</button>
            </form>            
        </div>
    </section>
</main>
{% endblock content %}

Вот файл forms.py:

from django import forms
from .models import Post



class BaseForm(forms.Form):
    def __init__(self, *args, **kwargs):
        kwargs.setdefault('label_suffix', '')  
        super(BaseForm, self).__init__(*args, **kwargs)

class BaseModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        kwargs.setdefault('label_suffix', '')
        super(BaseModelForm, self).__init__(*args, **kwargs)

class PostForm(BaseModelForm):

    class Meta:
        model = Post
        fields = ('title', 'clip', 'description')

class EmailPostForm(BaseForm):
    your_name = forms.CharField(max_length=25)
    email = forms.EmailField()
    to = forms.EmailField()
    description = forms.CharField(required=False,
                               widget=forms.Textarea)

Вот файл views.py:

from django.shortcuts import render, get_object_or_404, redirect    
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.contrib.auth.models import User
from django.utils import timezone
from django.views.generic import (
    ListView,        
    UpdateView,
    DeleteView,   
)    
from . models import Post
from .forms import PostForm, EmailPostForm    


@login_required
def post_new(request):
    if request.method == "POST":
        # without request.FILES file upload field won't work
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.publish = timezone.now()
            post.save()
            return redirect('post-detail', id=post.id)
    else:
        form = PostForm()
    return render(request, 'vblog/post_new.html', {'form': form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...