Chciałbym konwertować na zawartość programu Excel modelu po przejściu filtra z wyboru rozwijanego. Oto widok.

def ConvertToExcelView(request):
    response = HttpResponse(content_type='text/csv')
    writer = csv.writer(response)
    writer.writerow([('name'), ('adm'),('form'),('stream') ])
    for member in Marks.objects.filter(student__school__name=request.user.school).values_list('student__name',     'student__adm', 'student__klass__name', 'student__stream__name':
        writer.writerow(member)       
    response['Content-Disposition'] = 'attachment; filename="members.csv"'
    return response

Czy istnieje sposób, w jaki mogę to włączyć do widoku ????

query = request.GET.get('view_classes')
    if query:
        queryset = (Q(student__klass__name__icontains = query))            
    return render(request,'students_marks.html',all_mark_results)

Poproś o więcej wyjaśnień, nie jestem z tym jasny.

1
fakeMake 15 kwiecień 2021, 13:18

1 odpowiedź

Najlepsza odpowiedź

To jest dość proste. Po prostu należy podać żądanie i podaj nazwę formularza, który zamierzasz uzyskać wybór od I.e.

def ConvertToExcelView(request):
    details = request.GET.get('s_details') #Assuming the form name is s_details
    queryset = (Q(student__klass__name__exact = details))
    response = HttpResponse(content_type='text/csv')
    writer = csv.writer(response)
    writer.writerow([('name'), ('adm'),('form'),('stream') ])
    for member in Marks.objects.filter(queryset).distinct().filter(student__school__name=request.user.school).values_list('student__name',     'student__adm', 'student__klass__name', 'student__stream__name':
        writer.writerow(member)       
    response['Content-Disposition'] = 'attachment; filename="members.csv"'
    return response

To będzie działać jak urok. Powrócić, jeśli potrzebujesz wyjaśnienia.

1
Ptar 15 kwiecień 2021, 13:28