외부 링크는 페이지 링크와 외부 URL 링크가 데이터베이스에서 다른 표현을 사용하기 때문에 서식있는 텍스트 외부에서는 사용할 수 없습니다. 외부 링크는 일반 URL 문자열이지만 페이지에 대한 링크는 관련 페이지를 가리키는 ForeignKey
신분증. (이렇게하면 페이지의 슬러그가 변경되면 링크가 끊어지지 않습니다.) 결과적으로 두 가지 종류의 값을 처리 할 수있는 모델에서 정의 할 수있는 필드 유형이 없습니다.
일반적인 해결 방법은 내부 링크 입력을위한 PageChooserPanel과 외부 링크를위한 FieldFanel (두 개의 선택적 필드)을 나란히 사용하여 모델에서 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
유익하고 도움이되는 답변 ... 평상시처럼! 고마워요 @ 가스 만 – DDiran