ระบบควบคุมในการกระจายและเข้าถึงข่าวสาร การประกาศ

วันเสาร์ที่ 23 กรกฎาคม พ.ศ. 2559

วิธีใช้ cms api เพิ่ม image plugin ลงไปใน page

ไม่มีความคิดเห็น :
    ปกติเวลาเราใช้ django cms แล้วเราต้องการเพิ่มรูปภาพในหน้า page ที่เราต้องการ  เราจะต้องเข้าไปในหน้า page นั้นแล้วกดโหมด structure กดเลือก image plugin แล้วเลือกรูปภาพที่ต้องการมาใส่  ต่อไปนี้เราจะเสนอโค้ดที่ใช้ทำงานได้ในแบบเดียวกันคือนำไฟล์รูปภาพที่ต้องการมาใส่ในหน้า page ซึ่งรายละเอียดเป็นดังโค้ดด้านล่างนี้


from django.contrib.auth.models import User
from django.core.files import File
from filer.models import Image
from cms.api import create_page, add_plugin

filename = 'file'
filepath = 'path/to/file'
user = User.objects.get(username='testuser')
with open(filepath, 'rb') as f:
    file_obj = File(f, name=filename)
    image = Image.objects.create(owner=user,
                                 original_filename=filename,
                                 file=file_obj)
    page = create_page('My Page', 'my_template.html', 'en')
    placeholder = page.placeholders.get(slot='content')
    add_plugin(placeholder, 'FilerImagePlugin', 'en', image=image)

 จากโค้ดด้านบน เรากำหนดชื่อไฟล์รูปภาพ ที่อยู่ของไฟล์รูปภาพและ user ผู้สร้าง  จากนั้นทำการเปิดไฟล์โดยกำหนด 'rb' ด้วยเพื่อป้องกันการเกิดปัญหา EncodingError ต่อมาสร้าง object ของ File จากนั้น นำ object ของ File มาสร้างเป็น Image object ในตัวแปรชื่อ image จากนั้นเราก็สร้าง page กับ placeholder ของ page ที่เราเพิ่งสร้าง  ขั้นตอนสุดท้ายก็ทำการเพิ่ม plugin ลงไป


ไม่มีความคิดเห็น :

แสดงความคิดเห็น