[Answered ]-User Provided CSV in Django Web Project

1👍

Step 1: upload the file

# forms.py
from django import forms

class UploadFileForm(forms.Form):
    file  = forms.FileField()

Step 2: parse data and update database

# views.py
import csv

from .models import YourModel

def myview(request):
    if request.method == "POST":    
        form = UploadFileForm(request.POST, request.FILES)

        if form.is_valid():
            reader = csv.reader(form.cleaned_data['file'])

            for row in reader:
                try:
                    some_instance = YourModel.objects.get_or_create(row[...])

            ... 

1👍

Files uploaded by the user will go to the media folder that you have defined in your settings.py file.

You should be able to access user uploaded files in the media directory from your python code with something like this:

file_ = open(os.path.join(settings.MEDIA_ROOT, 'name_of_file'))

More info on MEDIA_ROOT and MEDIA_URL can be found here.

Leave a comment