如果用户填写表单,我写了一个简单的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。但那不适合我。一个好的小费我会很高兴。
答案 0 :(得分:4)
关于如何将表单集成到插件中的非常好的示例:
https://github.com/mkoistinen/staff-app-demo/tree/master/contacts
这是一个非常好的视频教程: