我正在寻找一种灵活的方式从另一个cmsplugin引用一个cmsplugin,以便允许用户在它们之间创建链接。
这一定是一个非常普遍的问题,所以应该有一个标准的解决方案。但我找不到它。
我目前的想法是在我的cmsplugin模型中添加一个字段(在我的例子中)ManyToManyField
指向CMSPluginBase
之类的字符。然后,必须设置选项limit_choices_to
并以一种人类可读方式显示选项的方式呈现表单。但我想避免重新发明轮子。
答案 0 :(得分:0)
我使用title
字段作为CMSPlugin
对象的唯一标识来解决我的问题。在查找相关对象时,我首先获取其标题,然后执行查询以收集具有正确标题和发布语言的所有对象。当然,这不是一个好的解决方案。
在CMSPlugin
模型中有一种处理关系的标准方法。一个人应该定义一个copy_related
方法,如here所述。但是当关系指向另一个CMSPlugin
时,这个解决方案并不适用于我。这是由于草稿页面如何转换为已发布页面的机制。