如何在djangocms插件中集成django app表单

时间:2015-02-19 17:21:35

标签: django django-forms django-templates django-cms

如果用户填写表单,我写了一个简单的django应用程序来存储电子邮件地址。一切都运行正常,但是当我按照tutorial将我的应用程序集成到django-cms中时,我发现我的表单没有显示在插件中,就像我将它移动到django-cms之前一样。似乎{% csrf_token %}{{ form.as_p }}在插件中不起作用。 谁知道为什么?

这是我的cms_plugin.py

from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from newsletter_djangocms.models import NewsletterPlugin
from django.utils.translation import ugettext as _


class CMSNewsletterPlugin(CMSPluginBase):
    model = NewsletterPlugin 
    module = _("Recipients")
    name = _("Newsletter Plugin")  
    render_template = "newsletter_djangocms/add.html"  
    def render(self, context, instance, placeholder):
        context.update({'instance': instance})
        return context

plugin_pool.register_plugin(CMSNewsletterPlugin) 

主应用程序的models.py(不是CMSPlugin)

from django.db import models

class Recipient(models.Model):
    adress = models.EmailField(max_length=100)
    name = models.CharField(max_length=100)
    lastname = models.CharField(max_length=100)
    def __str__(self):
            return self.adress

和forms.py(也是主应用)

from django import forms
from .models import Recipient

class NewsletterForm(forms.ModelForm):

    class Meta:
        model = Recipient
        fields = ('adress','name', 'lastname',)

哪个文件可能是错误,或者我在哪里可以找到有用的帖子或其他内容。我在这里找到的只有this。但那不适合我。一个好的小费我会很高兴。

1 个答案:

答案 0 :(得分:4)

关于如何将表单集成到插件中的非常好的示例:

https://github.com/mkoistinen/staff-app-demo/tree/master/contacts

这是一个非常好的视频教程:

http://youtu.be/XIdClQgYdzw