मेरे पास इस तरह एक स्ट्रक्चरब्लॉक है:

class JumbotronBlock(blocks.StructBlock):
fullwidth= blocks.BooleanBlock(requried=False, help_text="Full width of the viewport")
heading= blocks.CharBlock(required=True, help_text="Heading for the jumbotron")
lead= blocks.CharBlock(required= False, help_text= "Lead text for Jumbotron")
link= LinkBlock(required=False)
bg_image= ImageChooserBlock(required=False)
bg_color= blocks.CharBlock(required=False, help_text="Hex value for background color")
classes= blocks.CharBlock(required=False, help_text="CSS classes for jumbotron")
styles= blocks.CharBlock(required=False, help_text="Custom style definitions for jumbotron")

class Meta:
    template="streams/jumbotron_block.html"
    icon= "placeholder"
    label= "Jumbotron"

और मेरा होमपेज क्लास मॉडल यह है:

class HomePage(Page):
template= "home/home_page.html"
header= Jumbotron()

body =  StreamField([
    ('Richtext', RichTextBlock()),
    ('CTA', CTABlock()),
    ('Section', SectionBlock()),
    ])

content_panels = Page.content_panels + [
    ??which panel here??('header'),
    StreamFieldPanel('body'),
    ]

जंबोट्रॉन को एडिट पैनल में जोड़ने के लिए मुझे किस पैनल का उपयोग करना चाहिए? धन्यवाद।

0
shiv 17 पद 2019, 16:44

1 उत्तर

सबसे बढ़िया उत्तर

StructBlock मॉडल फ़ील्ड के रूप में प्रयोग करने योग्य नहीं है - यह केवल स्ट्रीमफ़ील्ड के अंदर ही मान्य है। आपको अपने जंबोट्रॉन ब्लॉक के क्षेत्रों को Django मॉडल फ़ील्ड अपने होमपेज मॉडल के भीतर, और - यदि आप उन्हें संपादन दृश्य में दृष्टिगत रूप से समूहबद्ध करना चाहते हैं - तो उन्हें MultiFieldPanel.

2
gasman 17 पद 2019, 14:22