Q - สอบถามเรื่อง ส่งค่า Django to PDF

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

theoneozz
PHP Super Member
PHP Super Member
Posts: 313
Joined: 07/01/2019 12:19 pm

Q - สอบถามเรื่อง ส่งค่า Django to PDF

Post by theoneozz » 23/01/2019 3:48 pm

ผมใช้โค้ด xhtml2pdf เพื่อออกรายงาน โดยนำข้อมูลจากการ input เเล้วแปลงมาเป็นไฟล์ PDF ปัญหาคือ เมื่อทำการกดปุ่ม ออกรายงาน จะได้ข้อมูลที่เป็นไฟล์ PDF ซึ่งภายในมีเเค่ฟอร์ม ไม่มีข้อมูลที่มาจาก Input

ตัวอย่าง
1.jpg
1.jpg (21.81 KiB) Viewed 535 times
2.jpg
2.jpg (24.45 KiB) Viewed 535 times
3.jpg
3.jpg (15.82 KiB) Viewed 535 times
ผมใช้ django ในการรันผล

views.py

Code: Select all

from django.shortcuts import render
from django.views.generic import TemplateView
from django.template import loader
from django.http import HttpResponse
from django.views.generic import View
from .utils import render_to_pdf


# Create your views here.
class HomePageView(TemplateView):
    def get(self,request,**kwargs):
        return render(request, 'index.html', context=None)
def index(request):
    if request.method == 'POST':
        name = request.POST.get('name')
        email = request.POST.get('email')
        phone = request.POST.get('phone')

        context = {
            'name':name,
            'email':email,
            'phone':phone
        }
        template = loader.get_template('result.html')

        return HttpResponse(template.render(context,request))

    else :
            #if post request is not true
            #returning the form template
            template = loader.get_template('index.html')
            return HttpResponse(template.render())

class GeneratePdf(View):
    def get(self, request, *args, **kwargs):
            # getting the template
            pdf = render_to_pdf('result.html')

            # rendering the template

            return HttpResponse(pdf, content_type='application/pdf')
    
urls.py

Code: Select all

from django.urls import path
from django.conf.urls import url
from studentinfo import views
from .views import GeneratePdf

urlpatterns = [
    path('',views.HomePageView.as_view()),
    path('result/',views.index),
    path('result/pdf/', GeneratePdf.as_view()),
    
]
index.html

Code: Select all

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Django Form</title>
    </head>
    <body>
        <h2>Django Form</h2>
        <form method="post" action="/result/">{% csrf_token %}
            <table>
                    <tr>
                            <td>Enter your name: </td>
                            <td><input type="text" name="name"/></td>
            
                    </tr>
                    <tr>
                        <td>Enter your email:</td>
                        <td><input type="email" name="email"/></td>
                    </tr>
                    <tr>
                        <td>Enter your phone:</td>
                        <td><input type="text" name="phone"/></td>
                    </tr>
                    <tr>
                        <td><button>Submit</button></td>
                        
                    </tr>
            </table>

        </form>
    
    </body>
</html>
result.html

Code: Select all

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>ทดสอบรับข้อมูลจากฟอร์ม</title>
    </head>
    <body>
        <h2>Django Form</h2>
        <form method="POST" action="result/pdf/">
            <table>
                    <tr>
                            <td>Name:</td>
                            
                            <td><strong>{{ name }}</strong></td>
            
                    </tr>
                    <tr>
                        <td>E-mail:</td>
                        <td><strong>{{ email }}</strong></td>
                    </tr>
                    <tr>
                        <td>Phone:</td>
                        <td><strong>{{ phone }}</strong></td>
                    </tr>
                    <td><a href="pdf/">ออกรายงาน</a></td>
            </table>
        </form>
    </body>
</html>

Return to “Programming - C/C++ & java & Python”

Users browsing this forum: Bing [Bot], Google [Bot] and 3 guests