форма недействительна: Django - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь сделать функцию загрузки изображений через ajax. Я проверил все, и все еще Django возвращает form.is_valid (), чтобы быть False, и я до сих пор не могу выяснить любую возможную ошибку в этом.form.is_valid () возвращает False.Здесь я делюсь своими views.py и html, а также кодом ajax

def upload_profile_picture(request):
data={}
uploadform=update_profile_photo(request.POST,request.FILES)
if uploadform.is_valid():
    image=request.FILES['profile_picture']
    if image:
        userID=request.POST['vuserID']
        usr=User.objects.get(pk=userID)
        if usr.id == request.user.id:
            usr.profile.profile_picture=image
            usr.profile.save()
            data['success']=True
        else:
            data['error_message']='you are not an authorized user'
            print('you are not an authorized user for uploading this photo')
    else:
        data['error_message']='image not supplied'
        print('image is not supplied in the form')
else:
    data['error_message']='profile photo upload form is not valid'
    print('this form is not valid')
return JsonResponse(data)

Вот мой код ajax, который отправляет данные формы в views.py Вот код ajax:

<script>
$(document).ready(function () {
    $('#upload_profile_picture').submit(function (e) {
        e.preventDefault();
        alert(" i am uploading profile_picture");
        var form = $(this);
        var formData = new FormData(this);
        var user_id=$(this).attr('data-user-id');
        //var postDescription = $('#post-form-description').val().trim();
        var image = $('.upload_profile_photo').val().trim();
        //console.log(postDescription);
        console.log(image);
        if(!image){
            alert('cannot submit empty forms!');
            return false;
        }
        $.ajax({
            type: 'POST',
            url: "{% url 'account:upload_profile_picture' %}",
            data: formData ,

            success: function (data) {
                if(data.success){
                location.reload();
                }
            },
            cache: false,
            contentType: false,
            processData: false
        });
    });
});

и ниже приведен фрагмент из файла html: - profile.html

form method='post' action='' id="upload_profile_picture" enctype="multipart/form-data">
                                      Select file : input type='file' name='profile_picture' id='fileo' class='form-control upload_profile_photo' /><br>
                                      input type="hidden" name="csrfmiddlewaretoken" value="{{csrf_token}}" />
                                      input type="hidden" name="vuserID" value="{{vuser.id}}" /> 
                                      input type='submit' data-user-id="{{vuser.id}}" class='btn btn-info' value='Upload' id='upload' style="background-color: rgb(244,107,61);margin-left: 20vw;">
                                    /form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...