简体   繁体   中英

Saving django form as excel file with saving to db also in Django

I have code like this. It's working example of saving data specified in forms.py, and some data taken from current logged user.

@login_required
def save(request):
        if request.method == 'POST':                
                form = ExcelForm(data=request.POST)
                if form.is_valid():
                        name = request.user.first_name
                        lastname = request.user.last_name
                        date = datetime.datetime.now().date()
                        valid_form = form.save(commit=False) 
                        valid_form.firstName = name 
                        valid_form.lastName = lastname
                        valid_form.date = date                     
                        valid_form.save()                                
                        return redirect('account:panel')         
        else:
                form = ExcelForm(data=request.POST)
        return render(request, 'account/panel.html', {'form': form}) 

This form is saved to sqllite db. My main goal is to save this form as excel file. How can I deal with this problem ? How to pass data to the sheet and with clicking submit button in my html file saving to excel file and to database in the same time ? thanks for all answers in the future.

Rather than storing the data in excel, you can create a new view to export the data as excel format. You can try like this using django-import-export . Example of writing a view:

from django.http import HttpResponse
from .resources import PersonResource

def export(request):
    person_resource = PersonResource()
    dataset = person_resource.export()
    response = HttpResponse(dataset.xls, content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename="persons.xls"'
    return response

You can check this medium post as well for exporting data using view.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM