为什么我无法获得我的pulgin的相关对象?

时间:2015-08-28 14:44:26

标签: python django django-cms django-permissions

我有一些模特

# models.py

class Email(models.Model):
    email =         models.EmailField(blank=False, null=False)
    contact_block = models.ForeignKey('contact.ContactBlockPlugin', related_name='emails', blank=False, null=False)

class ContactBlockPlugin(CMSPlugin):
    address =       models.TextField(blank=False, null=False)

注册pulgins

# cms_plugins.py

class EmailInlineAdmin(admin.TabularInline):
    model = Email

class CMSContactBlockPlugin(CMSPluginBase):
    model =     ContactBlockPlugin
    render_template =   'contact/contact_block.html'
    inlines =   (EmailInlineAdmin, )


plugin_pool.register_plugin(CMSContactBlockPlugin)

当我自动化时,我会看到模板中的所有相关对象

{# contact/contact_block.html #}

{% for email in instance.emails.all %}
    <a href="mailto:{{ email.email }}">{{ email.email }}</a>
{% endfor %}

但如果我是访客,则集合instance.emails.all()为空。

这是一个错误吗?还是不?

我怀疑对象的django权限问题,但是如何为访客用户设置它?

  

的Django == 1.7.10   django的-CMS == 3.1.2

提前谢谢

1 个答案:

答案 0 :(得分:1)

如果您的插件具有数据库关系,则需要指示django CMS在复制时要执行的操作,请参阅http://docs.django-cms.org/en/develop/how_to/custom_plugins.html#handling-relations