Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django CMS自定义插件在已发布页面中不显示数据_Python_Django_Django Templates_Django Cms - Fatal编程技术网

Python Django CMS自定义插件在已发布页面中不显示数据

Python Django CMS自定义插件在已发布页面中不显示数据,python,django,django-templates,django-cms,Python,Django,Django Templates,Django Cms,我在Django/Django CMS中为我的项目创建了一个自定义插件,该插件有一个用户在将插件添加到页面时选择的推荐列表。模型是这样的: class TestimonialsPlugin(CMSPlugin): n_testimonials = models.PositiveIntegerField( verbose_name=_('Number of Testimonials'), default=5) speed_autoplay = models.Pos

我在Django/Django CMS中为我的项目创建了一个自定义插件,该插件有一个用户在将插件添加到页面时选择的推荐列表。模型是这样的:

class TestimonialsPlugin(CMSPlugin):
    n_testimonials = models.PositiveIntegerField(
        verbose_name=_('Number of Testimonials'), default=5)

    speed_autoplay = models.PositiveIntegerField(
        verbose_name=_('Speed of slider (milliseconds)'), default=3000)

    picked_testimonials = models.ManyToManyField(Testimonials,
                                                 verbose_name=_('picked_testimonials'),
                                                 blank=True, null=True)
在编辑模式下,我可以在我的页面中使用推荐信息,并且我可以发布没有错误的推荐信息,但是当我看到发布的页面时,推荐信息不会显示。插件模板正在呈现中,但所选的_证明提供了
None
。以下是模板:

<div class="max-width1440 block clearfix relative">
    <div class="small-only-text-left small-12 small-offset-0 medium-text-center medium-offset-1 medium-10 large-offset-1 large-10 column pt-px60 pb-px40 pl-px40 pr-px40 slider-testimonials">
        {% for testimonial in instance.picked_testimonials.all %}
            {% if forloop.counter0 < instance.n_testimonials %}
                <div class="slider column">
                    <blockquote class="acta_mediumitalic size36 pl-px80 pr-px80 line-height140">
                        {% render_model testimonial "description" %}
                    </blockquote>

                    <div class="mt-px30">
                        <p class="acta_book size20 softblack">{{ testimonial.author }},<span>{{ testimonial.city }}</span>
                        </p>
                    </div>
                </div>

            {% endif %}
        {% endfor %}
    </div>
</div>

{instance.pickedu estimational.all%}
{%if-forloop.counter0{{{esticional.author}},{{{esticional.city}

{%endif%} {%endfor%}
发布页面时,会创建一个插件副本,其中包含插件的字段,但不包含任何关系。CMS中有一项规定,即提供用于此目的的复制方法,参见以下示例:

重要的一点是复制关系,它确保新对象具有相同的关系链接

在您的情况下,应该采用以下方法:

class TestimonialsPlugin(CMSPlugin):
    n_testimonials = models.PositiveIntegerField(
        verbose_name=_('Number of Testimonials'), default=5)

    speed_autoplay = models.PositiveIntegerField(
        verbose_name=_('Speed of slider (milliseconds)'), default=3000)

    picked_testimonials = models.ManyToManyField(Testimonials,
                                                 verbose_name=_('picked_testimonials'),
                                                 blank=True, null=True)

    def copy_relations(self, oldinstance):
        self.picked_testimonials = oldinstance.picked_testimonials.all()

当一个页面被发布时,一个插件的副本就被创建了——它包括插件的字段,但不包括任何关系。CMS中有一项规定,即提供用于此目的的复制方法,参见以下示例:

重要的一点是复制关系,它确保新对象具有相同的关系链接

在您的情况下,应该采用以下方法:

class TestimonialsPlugin(CMSPlugin):
    n_testimonials = models.PositiveIntegerField(
        verbose_name=_('Number of Testimonials'), default=5)

    speed_autoplay = models.PositiveIntegerField(
        verbose_name=_('Speed of slider (milliseconds)'), default=3000)

    picked_testimonials = models.ManyToManyField(Testimonials,
                                                 verbose_name=_('picked_testimonials'),
                                                 blank=True, null=True)

    def copy_relations(self, oldinstance):
        self.picked_testimonials = oldinstance.picked_testimonials.all()

很高兴我能帮助并享受与Django CMS的合作!很高兴我能帮助并享受与Django CMS的合作!