Hallo
Ich habe mich vor einiger Zeit mit Bachstelze entwickelt. Es gibt nicht viele japanische Dokumente in Bachstelze, daher müssen Sie englische Dokumente lesen.
Als Ingenieur ist die Fähigkeit, englische Literatur zu lesen, sehr wichtig. ** Ich wünschte, es wäre ein Dokument auf Japanisch geschrieben ** Ich denke, viele Leute denken das. ~~ Ich denke ~~
Also möchte ich Code mit Bachstelze schreiben und ausgeben. Diesmal ist der erste von ihnen.
Ich denke, einige Leute denken überhaupt an Bachstelze.
Wagtail ist OSS von CMS, das auf Django basiert. /word15874.html). WordPress läuft auf PHP, während Wagtail auf Python läuft. Wie Sie dem Release Note entnehmen können, ist die Entwicklung recht aktiv.
Bachstelze ist übrigens ein Wort, das auf Japanisch Sekirei entspricht. Das Bachstelzen-Logo ist ebenfalls mit einem schönen Motiv versehen.
Lassen Sie es uns sofort berühren. Ich mache es auf dem Mac. In Bezug auf die Umgebungskonstruktion habe ich auf die folgende Seite verwiesen.
Referenz: Empfehlung von Bachstelze (1) Vergleich und Untersuchung von Django-basierten CMS und Auswahl von Bachstelze Erstellen Sie ein einfaches Blog-System mit Bachstelze ~ Bachstelze lernen ①
Greifen Sie von localhost auf CMS zu und klicken Sie auf die Schaltfläche "Seite". Klicken Sie dann oben auf dem Bildschirm auf "KINDERSEITE HINZUFÜGEN". Hier können Sie Ihr Blog bearbeiten.
Wenn Sie keinen Code bearbeitet haben, können Sie nur den Titel eingeben. Beziehen Sie sich auf die unten stehende Referenzseite und stellen Sie sie so ein, dass Sie den Text schreiben können.
Referenz: Bachstelzen-Seite anpassen
home/models.py
1 from django.db import models
2
3 from wagtail.core.models import Page
4 from wagtail.core.fields import RichTextField
5 from wagtail.admin.edit_handlers import FieldPanel
6
7
8 class HomePage(Page):
9 """
10 Seitenmodell
11 """
12 body = RichTextField(blank=True)
13 content_panels = Page.content_panels + [FieldPanel("body", classname="full"),]
Werfen wir einen Blick auf den Code. Der Code für dieses Modell lautet Seite [Inherit](https: //blog.codecamp) .jp / python-class-2) Das HomePage-Modell wurde geschrieben. Der Text wurde als RichTextField hinzugefügt, dh als Modell des Textes. Vergessen Sie nicht, [FieldPanel] hinzuzufügen (https://github.com/wagtail/wagtail/blob/c72a4e09413bc6fc3a9cac8ed173378aa8652925/wagtail/admin/edit_handlers.py#L420). ~~ Es gibt eine Person, die hier vergessen hat ~~
Lassen Sie uns auch migrieren.
python manage.py makemigrations
python manage.py migrate
Ich denke, der Bildschirm sieht so aus. ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Nachdem Sie den Titel und den Text eingegeben haben, können Sie den Inhalt speichern, indem Sie auf die Registerkarte am unteren Bildschirmrand klicken. Als Prozess zu diesem Zeitpunkt werde ich versuchen, den Titel und den Text zu validieren. Dieses Mal werde ich die Anzahl der Zeichen begrenzen. ** Speichern Sie den Titel und den Text zum Testen **
home/models.py
1 from django.db import models
2
3 from wagtail.core.models import Page
4 from wagtail.core.fields import RichTextField
5 from wagtail.admin.edit_handlers import FieldPanel
6
7
8 class HomePage(Page):
9 """
10 Seitenmodell
11 """
12 body = RichTextField(blank=True)
13 content_panels = Page.content_panels + [FieldPanel("body", classname="fu ll"),]
14
15 def save(self, *args, **kwargs):
16 """Funktion speichern"""
17 print("Speicherfunktion eingegeben")
18 breakpoint()
Überschreiben der Speichermethode von django.
breakpoint()
Dies ist eine Funktion, die den Debugger PDB aufruft, der in Python verwendet werden kann. Lassen Sie es uns gleich laufen.
Speicherfunktion eingegeben
--Return--
> /Users/Username/mysite/home/models.py(18)save()->None
-> breakpoint()
(Pdb) HomePage
<class 'home.models.HomePage'>
(Pdb) HomePage.objects
<django.db.models.manager.BasePageManagerFromPageQuerySet object at 0x10ebee410>
(Pdb) HomePage.objects.all()
<PageQuerySet [<HomePage: Home>, <HomePage: title>]>
(Pdb) instance = HomePage.objects.all()
(Pdb) instance
<PageQuerySet [<HomePage: Home>, <HomePage: title>]>
(Pdb) instance[1]
<HomePage: title>
(Pdb) instance[1].title
'title'
(Pdb) len(instance[1].title)
5
Sie können die Länge der Zeichenfolge mithilfe der len-Funktion ermitteln.
Bei der Entwicklung mit Django oder Bachstelze starte ich den Debugger wie folgt und überprüfe den Inhalt des Objekts. Wenn Sie danach einen bedingten Ausdruck schreiben, können Sie anscheinend die Anzahl der Zeichen im Titel überprüfen.
Laut dieser Website "Wie viele effektive Titelzeichen gibt es in Google SEO" kann das Titelzeichen bis zu 32 Zeichen lang sein. Klingt genau richtig. Dieses Mal möchte ich es so verarbeiten, dass es 33 Zeichen nicht überschreitet.
home/models.py
16 def save(self, *args, **kwargs):
17 """Funktion speichern"""
18 print("Speicherfunktion eingegeben")
19 breakpoint()
20 instance = HomePage.objects.all() #Ich habe vergessen zu löschen
21 titleCharCount = len(self.title)
22 if ((titleCharCount < 0) | (titleCharCount > 32)):
23 #Nicht validiert
24 return
25 else:
26 #Validierung bestanden
27 return super(HomePage, self).save()
Das Objekt wird nicht in Zeile 24 gespeichert. Es wird in Zeile 27 gespeichert. Lassen Sie es uns mit einem Debugger überprüfen. Wenn Sie einen ähnlichen Prozess schreiben, wird der Text validiert.
Sie haben die Fehlermeldung, die oben auf dem Bildschirm angezeigt wird, wenn das Objekt nicht gespeichert werden kann, nicht implementiert. Nächstes Mal möchte ich die Ausgabe davon schreiben.
Recommended Posts