【发布时间】:2020-12-14 15:12:20
【问题描述】:
我正在使用 DjangoCMS 进行网站开发。我需要在网站的多个地方使用公司的电话号码和电子邮件。所以我想用下面的模型写一个自定义插件
from cms.models.pluginmodel import CMSPlugin
from django.db import models
# Create your models here.
class ContactDetails(CMSPlugin):
phone_number = models.CharField(max_length=50,default="000000000")
email_id = models.CharField(max_length=50,default="Enter the Email")
address = models.CharField(max_length=200,default="Enter Address")
还有下面的cms_plugins.py
from cms.plugin_pool import plugin_pool
from cms.models.pluginmodel import CMSPlugin
from django.utils.translation import ugettext_lazy as _
from .models import ContactDetails
@plugin_pool.register_plugin
class ContactDetailsPluginFooter(CMSPluginBase):
model = ContactDetails
name = _("Contact Plugin Footer")
render_template = "contact_details_footer.html"
cache = False
def render(self, context, instance, placeholder):
context = super(ContactDetailsPluginFooter, self).render(context,instance, placeholder)
return context
@plugin_pool.register_plugin
class ContactDetailsPluginHeader(CMSPluginBase):
model = ContactDetails
name = _("Contact Plugin Header")
render_template = "contact_details_header.html"
cache = False
def render(self, context, instance, placeholder):
context = super(ContactDetailsPluginHeader, self).render(context,instance, placeholder)
return context
我有如下模板。
contact_details_footer.html
<div class="container">
<div class="row">
<div class="col-sm-3 col-md-3">
<div class="f-h-content">
<h3>Call Us Now !</h3>
<h2>{{instance.phone_number}}</h2>
<p><a href="#">24/7 Available</a></p>
</div>
</div>
<div class="col-sm-3 col-md-3">
<div class="f-h-content">
<h3>Send Us Message !</h3>
<h2>{{instance.email_id}}</h2>
<p><a href="#">24/7 Available</a></p>
</div>
</div>
<div class="col-sm-6 col-md-6">
<div class="f-h-content">
<h3>Visit Our Dubai Office !</h3>
<h2>{{instance.address}} </h2>
<p><a href="#">View Map</a></p>
</div>
</div>
</div>
</div>
contact_details_header.html
<div class="header-contact">
<ul>
<li><span>Phone :</span> {{instance.phone_number}}</li>
<li><span>Email :</span> {{instance.email_id}} </li>
<li><a href="contact-us.html">Free Consultation</a></li>
</ul>
</div>
但是在这里,当我每次都添加相同的内容时,我必须添加电话和电子邮件 ID 和地址。我应该怎么做才能让它进入一次并使用多个插件。
【问题讨论】:
标签: plugins content-management-system django-cms