Mam pewne problemy z pliszka stron.Pliszka podając `none` url ze statusem" na żywo "
z powłoki
>>> Site.get_site_root_paths()
[(1, u'/home/', u'http://localhost')]
>>> BlogPage.objects.all()[0]
<BlogPage: Hello wagtail>
>>> BlogPage.objects.all()[0].url
>>> BlogPage.objects.all()[0].full_url
>>> BlogPage.objects.all()[0].status_string
'live'
>>> BlogPage.objects.all()[0].url_path
u'/blog/hello-wagtail/'
to działało przez jakiś czas, przeniosłem Blog Page
z root
do Blog Index Page
w admin smolista (patrz models.py
ryk) iz jakiegoś powodu, strona przeniosłem disapeared od admin, więc próbowałem powtórzyć kroki, które zrobiłem, ponownie tworząc bazę danych z ./manage.py sycndb
i ./manage.py migrate
, ponownie utworzyłem strony, a teraz adresy URL nie są już wyświetlane.
Dodałem punkt przerwania w wagtailcore/models.py
, aby zobaczyć, co się dzieje. sekcja krytyczna wydaje się być tu:
@property
def url(self):
"""
Return the 'most appropriate' URL for referring to this page from the pages we serve,
within the Wagtail backend and actual website templates;
this is the local URL (starting with '/') if we're only running a single site
(i.e. we know that whatever the current page is being served from, this link will be on the
same domain), and the full URL (with domain) if not.
Return None if the page is not routable.
"""
root_paths = Site.get_site_root_paths()
for (id, root_path, root_url) in Site.get_site_root_paths():
if self.url_path.startswith(root_path):
return ('' if len(root_paths) == 1 else root_url) + self.url_path[len(root_path) - 1:]
self.url_path.startswith(root_path)
nigdy nie jest prawdziwe w moim przypadku.
Zmienne wewnątrz tej pętli:
id = {int} 1
root_path = {unicode} u'/home/'
root_paths = {list} [(1, u'/home/', u'http://localhost')]
root_url = {unicode} u'http://localhost'
self = {Page} Blog
Wszystko to oznacza, że moje strony nie są tworzone routingu. I może jeszcze zobaczyć moich stron poprawnie przy użyciu trybu podglądu z pliszka administratora, ale nie mogę znaleźć, dlaczego nie ma trasy do moich stron :(.
Oto moje models.py
from django.db import models
from wagtail.wagtailcore.models import Page, Orderable
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel, InlinePanel, PageChooserPanel
from modelcluster.fields import ParentalKey
class BlogPage(Page):
body = RichTextField()
intro = RichTextField()
date = models.DateField("Post date")
indexed_fields = ('body',)
search_name = "Blog Page"
BlogPage.content_panels = [
FieldPanel('title', classname="full title"),
FieldPanel('date'),
FieldPanel('intro', classname="full"),
FieldPanel('body', classname="full"),
]
class LinkFields(models.Model):
link_page = models.ForeignKey(
'wagtailcore.Page',
null=True,
blank=True,
related_name='+'
)
panels = [
PageChooserPanel('link_page'),
]
class Meta:
abstract = True
class RelatedLink(LinkFields):
title = models.CharField(max_length=255, help_text="Link title")
panels = [
FieldPanel('title'),
MultiFieldPanel(LinkFields.panels, "Link"),
]
class Meta:
abstract = True
class BlogIndexPageRelatedLink(Orderable, RelatedLink):
page = ParentalKey('main.BlogIndexPage', related_name='related_links')
class BlogIndexPage(Page):
intro = models.CharField(max_length=256)
indexed_fields = ('body',)
search_name = "Blog Index Page"
BlogIndexPage.content_panels = [
FieldPanel('title', classname="full title"),
FieldPanel('intro', classname="full"),
InlinePanel(BlogIndexPage, 'related_links', label="Related links"),
]