Django cms插件POST请求

时间:2014-05-31 23:34:26

标签: django plugins content-management-system request

我编写了一个简单的插件,使用表单将注释添加到页面上。

以下是插件代码:

class KomentarzePlugin(CMSPluginBase):
    model = CMSPlugin
    name = _("Komentarze plugin")
    render_template = "komentarze/komentarze_wtyczka.html"

    def render(self, context, instance, placeholder):
        request = context['request']
        print 'weszlo1'
        print request.method
        if request.method == 'POST':
                form = KomentarzForm(request.POST)
                print 'weszlo2'
                if form.is_valid():
                    user = form.cleaned_data['user']
                    tresc = form.cleaned_data['tresc']
                    strona = request.current_page
                    data = timezone.datetime.now()
                    k = Komentarz(autor=user, data=data, tresc=tresc, strona=strona)
                    k.save()

        context.update({
                'instance': instance,
                'placeholder': placeholder,
                'komentarze': Komentarz.objects.all().filter(strona=request.current_page).order_by('-data'),
                'forma': KomentarzForm()
        })

        return context

plugin_pool.register_plugin(KomentarzePlugin)

当我重新启动服务器时,用数据填写表单,点击提交,然后如果满足POST方法的语句并且函数输入,则将post添加到数据库并显示。但是,当我再次尝试时,它甚至不会将request.method打印到控制台,这意味着它是空的。重新启动服务器可以解决问题。当我重新启动服务器,执行一些随机菜单点击,然后尝试填写并发送表单时,它也不起作用。

有什么猜测?

1 个答案:

答案 0 :(得分:5)

我终于解决了我的问题。在KomentarzePlugin课程中,我添加了:

cache = False