我不确定我是不是真的很厚,但我很难在可用面板列表中找到这个面板.起初我以为是PageChooserPanel但事实并非如此.这就是我要找的东西:
插入链接时可以使用此面板RichTextField.它非常适合我的需求,但我似乎无法在其他任何地方找到它.
我正在尝试创建一个字段,编辑器可以选择现有页面或链接到外部URL.然后,该网址将输入ref="{{ page.my_url }}"我的模板中.
此选择器在富文本之外不可用,因为页面链接和外部URL链接在数据库中具有不同的表示形式 - 外部链接是纯URL URL,但ForeignKey指向页面的链接存储为指向相关页面ID.(这可以确保在页面的段落发生变化时链接不会中断.)因此,您无法在模型上定义可以处理这两种值的字段类型.
一个常见的解决方法是并排使用两个可选字段 - 用于输入内部链接的PageChooserPanel和用于外部链接的FieldPanel(带有URLField) - 并在模型中包含一些逻辑以从任何填充的URL返回URL在:
class SomePage(Page):
related_page = models.ForeignKey('wagtailcore.Page', null=True, blank=True, related_name='+')
related_external_url = models.URLField("External link", blank=True)
content_panels = Page.content_panels + [
PageChooserPanel('related_page'),
FieldPanel('related_external_url'),
]
def related_url(self):
if self.related_page:
return self.related_page.url
else if self.related_external_url:
return self.related_external_url
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |