Skip to content

views

django_spire.file.views

file_upload_ajax_multiple

Source code in django_spire/file/views.py
@login_required()
def file_upload_ajax_multiple(request: WSGIRequest) -> JsonResponse:
    if request.method != 'POST':
        return error_json_response('Method not allowed')

    related_field = request.POST.get('related_field', '')
    error = _validate_related_field(related_field)

    if error:
        return error_json_response(error)

    try:
        factory = FileFactory(related_field=related_field)
        files = factory.create_many(list(request.FILES.values()))
    except FileError as exception:
        return error_json_response(str(exception))

    return success_json_response(files=[file.to_dict() for file in files])

file_upload_ajax_single

Source code in django_spire/file/views.py
@login_required()
def file_upload_ajax_single(request: WSGIRequest) -> JsonResponse:
    if request.method != 'POST':
        return error_json_response('Method not allowed')

    related_field = request.POST.get('related_field', '')
    error = _validate_related_field(related_field)

    if error:
        return error_json_response(error)

    try:
        uploaded_file = next(iter(request.FILES.values()))
    except StopIteration:
        return error_json_response('No file provided.')

    try:
        factory = FileFactory(related_field=related_field)
        file = factory.create(uploaded_file)
    except FileError as exception:
        return error_json_response(str(exception))

    return success_json_response(file=file.to_dict())