I am a relative newcomer to programming Wagtail My attempt is a cascaded application where the title is formed from the relation to the underlying element. The cascade should be structured like this Fach --> Reihe --> Ebene --> Behaelter My models.py
class NoTitleForm(WagtailAdminPageForm):
title = forms.CharField(required=False, disabled=True, help_text=('Title is autogenerated'))
slug = forms.CharField(required=False, disabled=True, help_text=('Slug is autogenerated'))
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not self.initial['title']:
self.initial['title'] = _('auto-generated-title')
if not self.initial['slug']:
self.initial['slug'] = _('auto-generated-slug')
class ReihePage(Page):
base_form_class = NoTitleForm
content_panels = [
MultiFieldPanel(
[
InlinePanel("Fach", label="Fach", min_num=0, max_num=10),
]
),
FieldPanel('title'),
FieldPanel('slug'),
]
def clean(self):
super().clean()
new_title = "anzahl from Fach" + "title from Fach" <--** How to get the values from the InlinePanel**
self.title = new_title
self.slug = slugify(new_title)
class ReihePageOrderable(Orderable):
page = ParentalKey(ReihePage, related_name="Fach", null=True)
fach = models.ForeignKey("Fachpage", on_delete=models.SET_NULL, null=True)
anzahl = models.IntegerField(default=1)
class FachPage(Page):
laenge = models.IntegerField(null=True, blank=True, verbose_name='Länge in mm')
breite = models.IntegerField(null=True, blank=True, verbose_name='Breite in mm')
content_panels = [
# FieldPanel('bezeichnung'),
FieldPanel('laenge'),
FieldPanel('breite'),
FieldPanel('title'),
FieldPanel('slug'),
]
parent_page_types = ['FachIndexPage']
class Meta:
unique_together = ('laenge', 'breite')
def clean(self):
"""Override the values of title and slug before saving."""
super().clean()
a = str(self.laenge)
b = str(self.breite)
new_title = "Fach" + " " + a + "x" + b + " mm"
self.title = new_title
self.slug = slugify(new_title)
base_form_class = NoTitleForm
I read the documentation on the wagtail-site I try a function with get_context and many more
You want to make a Wagtail setup where each page's title is based on the elements it's related to. If I got it right, your ReihePage should have a title made up of how many FachPage instances it has and what their titles are, correct? To do this, you need to get the related FachPage instances from your ReihePage. You can do this by querying the related FachPage instances within the ReihePage model.