AJAX-запрос к Django view и python print to terminal ничего не делают

Я работаю над Django-сайтом для некоммерческой организации. Я нахожусь на части изображений профиля. Я пытаюсь загрузить изображения, используя изображение как кнопку для отправки. У меня есть выбор файла, который открывается. Затем он отправляется после завершения выбора файла. Он должен сохранять загруженное изображение в базе данных Django. Пока что мой AJAX-запрос к представлению Django, его функция успеха работает правильно. Однако, когда я пытаюсь вывести на терминал свой тест, в терминале python ничего не печатается. Кроме того, изображение не обновляется должным образом.

# users\views.py
...
@login_required
def profile(request):
    user = get_object_or_404(afbUsers)
    if request.method == 'POST':
        new_pic_file = request.FILES.get('newPic')

        if new_pic_file:
            print('testing 123', new_pic_file.name)

            # Update the logic based on your model and how you want to handle the file
            user.profile_pic = new_pic_file
            user.save()

            messages.success(request, 'Profile image update success!')
            return JsonResponse({'status': 'success'})
        else:
            messages.error(request, 'No file uploaded.')
            return JsonResponse({'status': 'error', 'message': 'No file uploaded.'})
    context = {'user': user}
    return render(request, 'profile-pages/child-profile.html', context)
...

Вы уверены, что получаете правильный объект с помощью этого запроса:

user = get_object_or_404(afbUsers)

Вы не передаете никакого идентификатора или чего-либо еще. Запрос может быть валидным, но ваш код все равно поднимает здесь 404, и он возвращает 404 коду AJAX.

Пришлось сделать отдельное представление для возврата JsonResponse и рендеринга.

@login_required
def profile(request, user):
    all_events = Events.objects.all()
    calendaruser = get_object_or_404(afbUsers, pk=request.user.id)
    form = CalendarTimeZoneForm(request.POST or None, instance=calendaruser)
    profile = get_object_or_404(afbUsers, pk=user)
    gallery_entries = GalleryEntry.objects.all()
    publicform = UserSettingsForm(request.POST or None, instance=profile)

    if request.method == "POST" and form.is_valid():
        form.save()
        # Redirect or indicate success
    context = {
        "userprofile": profile,
        "publicform": publicform,
        "user": user,
        "gallery_entries": gallery_entries,
        "events": all_events,
        "calendaruser": calendaruser,
        "form": form,
    }
    return render(request, "profile-pages/child-profile.html", context)


def upload_profile_pic(request):
    # user = get_object_or_404(afbUsers, child_name = request.afbUsers.child_full_name, profile_image = request.afbUsers.profile_pic)
    user = request.user.id
    if request.method == "POST":
        new_pic_file = request.FILES.get("newPic")

        if new_pic_file:
            print("testing 123", new_pic_file.name)
            newPic = afbUsers.objects.get(pk=user)
            # Update the logic based on your model and how you want to handle the file
            newPic.profile_pic = new_pic_file
            newPic.save()

            return JsonResponse({"status": "success"})
        else:
            pass
            return JsonResponse({"status": "error", "message": "No file uploaded."})
Вернуться на верх