วันอังคารที่ 29 มีนาคม พ.ศ. 2559
ทดลองดึงเนื้อหาจาก Article ของ Aldryn_newsblog
การทดลองนี้เพื่อพิสูจน์ว่าเราจะดึงเนื้อหาจาก Article model ของ Aldryn_newsblog มาแสดงในหน้าที่เราต้องการได้หรือไม่ ที่มาคือในกรณีเราจะสร้างประกาศประเภทบทความเราจะใช้ plugin ที่สร้างไว้ให้เราใช้งานได้เลย ในที่นี้เราเลือก Aldryn_newsblog ใช้สร้างข่าวหรือบทความ สามารถใส่รูปภาพประกอบลงไปในบทความได้ มีการทำ list ของบทความให้อัตโนมัติ การทดลองของเราคือสร้างบทความมา 1 บทความเป็น model ชื่อ Article แล้วดึงเนื้อจาก Article ที่เราเขียนมาแสดงในหน้าที่เราต้องการ มีขั้นตอนดังนี้1. โหลด aldryn_newsblog จาก https://github.com/aldryn/aldryn-newsblog
2. สร้าง app ใช้ cms project ของเราชื่อ myapp
3. เขียนไฟล์ models.py ดังนี้
from cms.models.pluginmodel import CMSPlugin from django.db import models from aldryn_newsblog.models import Article class ArticleHello(CMSPlugin): article = models.ForeignKey(Article) def __unicode__(self): return self.article.translations.title
from aldryn_newsblog import Article คือเข้าถึง model ของ alryn_newsblog
4. เขียนไฟล์ cms_plugins.py ดังนี้
from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool from django.utils.translation import ugettext_lazy as _ from .models import ArticleHello class HelloArticle(CMSPluginBase): model = ArticleHello name = _("Hello Article") render_template = "hello_article.html" cache = False def render(self, context, instance, placeholder): context = super(HelloArticle, self).render(context, instance, placeholder) return context plugin_pool.register_plugin(HelloArticle)
@plugin_pool.register_plugin ถ้าถูกประกาศบน class ไหนแปลค่า plugin_pool.register_plugin ตัว class นั้น
5. สร้าง templates/hello_plugin.html ดังนี้
{% load i18n staticfiles thumbnail cms_tags apphooks_config_tags %} <h1>Hello Article</h1> <ul> <li>{{ instance.article.translations }}</li> <li>{{ instance.article.publishing_date }}</li> <li>{% render_model instance.article "lead_in" %}</li> </ul>
6. รันคำสั่ง python manage.py makemigrations myapp และ python manage.py migrate myapp
7. รัน server เปิดหน้าที่เราต้องการ จากนั้นเพิ่มสร้าง article โดย aldryn_newsblog มาหนึ่งบทความ จากนั้นเพิ่ม plugin ชื่อ Hello Article เลือกบทความที่เราสร้าง
จากรูปเราใช้ Hello Article มาแสดงจากนั้นก็เป็นข้อมูลต่างๆของบทความที่เราสร้าง สรุปคือเรานำ aldryn newsblog มาใช้สร้างประกาศแบบบทความได้ และเราควบคุมการแสดงเนื้อหาของบทความได้
สมัครสมาชิก:
ส่งความคิดเห็น
(
Atom
)

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