从民意调查应用程序创建插件

时间:2016-11-03 01:16:40

标签: django django-cms django-apps

我安装了来自pip install -e git+http://git@github.com/divio/django-polls.git#egg=polls的app民意调查。应用程序已保存/me/env/src/polls/。我从/me/project/运行服务器。我得到一个错误Poll插件无法导入。我如何定义该民意调查应用程序使用自己的模型。

现在我想在我的模板中创建插件和占位符。

cms_plugins.py

    from cms.plugin_base import CMSPluginBase
    from cms.plugin_pool import plugin_pool
    from polls.models import PollPlugin as PollPluginModel
    from django.utils.translation import ugettext as _

    class PollPlugin(CMSPluginBase):
        model = PollPluginModel # <--not sure what to put here.
        name = _("Poll Plugin") # Name of the plugin
        render_template = "polls/plugin.html" # 

        def render(self, context, instance, placeholder):
            context.update({'instance':instance})
            return context

    plugin_pool.register_plugin(PollPlugin) # register the plugin

轮询/ models.py

class Poll(models.Model):
        question = models.CharField(max_length=200)

        def __unicode__(self):  # Python 3: def __str__(self):
            return self.question


class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __unicode__(self):  # Python 3: def __str__(self):
        return self.choice_text

1 个答案:

答案 0 :(得分:0)

首先你需要添加新的应用程序。

定义PollPluginModel并将其与poll关联 民调/模型     来自django.db导入模型     从cms.models导入CMSPlugin     来自polls.models import Poll

+-------+------------+------------+------------+
|user_id|  actions   | nb_of_occ  |    order   |
+-------+------------+------------+------------+
| 217498|    'A'     |      3     |     1      |
| 217498|    'B'     |      1     |     2      |
| 217498|    'C'     |      2     |     3      |
| 217498|    'A'     |      1     |     4      |
| 217498|    'B'     |      2     |     5      |
| 854123|    'A'     |      2     |     1      |
| etc.

请检查http://docs.django-cms.org/en/release-3.4.x/introduction/plugins.html。这是插件的完整教程。