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

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

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

theoneozz
PHP Super Member
PHP Super Member
โพสต์: 313
ลงทะเบียนเมื่อ: 07/01/2019 12:19 pm

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

โพสต์ที่ยังไม่ได้อ่าน โดย theoneozz »

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

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

views.py

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

<!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

โค้ด: เลือกทั้งหมด

<!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>
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 99