标签: wagtail-snippet

在Wagtail的Snippets中使用StreamField

我正在尝试在我的Wagtail网站上构建一些结构化代码片段.我查看了文档,但在这一点上什么都看不到(如果我错过了,请原谅我).

是否可以StreamField在代码段内使用?或者,仅限于Pages

python django wagtail wagtail-streamfield wagtail-snippet

6
推荐指数
1
解决办法
763
查看次数

如何从 wagtail 块模板中的 struct_block.StructValue 中获取数据库 id?

为 wagtailStreamField块构建自定义模板我发现自己需要以某种方式将当前块的 ID 传递给其他视图。

例如,当 URL 在特定块中被点击时,着陆页view必须确切知道 URL 是在哪个块中被点击的。然后view可以提取与特定块相关联但不一定在视觉上呈现给用户的其他信息。

我目前的策略是使用snippets,因此我可以传递 的 IDsnippet并且view可以获取相关但预先隐藏的数据。

这效果还不错,但人们必须在两个地方编辑内容,我不得不看着他们悲伤的脸。

似乎value块模板上下文中的变量是 的一个实例wagtail.core.blocks.struct_block.StructValue,它使我可以访问块的所有字段,但它似乎没有显示它在数据库中的足迹。

进一步value有一个有趣的属性:value.block,它似乎是用于构造块的实际模型的实例,但我再次找不到任何有用的东西,例如idpk允许在数据库中识别该实例。

有办法吗?

django python-3.x wagtail wagtail-streamfield wagtail-snippet

5
推荐指数
1
解决办法
2039
查看次数

流场中的Wagtail SnippetChooserBlock

我在从代码段获取值时遇到了一些麻烦,我已使用代码段选择器块将其包含到流字段中。

BioSnippet:

@register_snippet
class BioSnippet(models.Model):
    name = models.CharField(max_length=200, null=True)
    job_title = models.CharField(max_length=200, null=True, blank=True)
    bio = RichTextField(blank=True)
    image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
        verbose_name='Bio Image'
    )
    contact_email = models.CharField(max_length=50, null=True, blank=True)
    contact_phone = models.CharField(max_length=50, null=True, blank=True)

    panels = [
        FieldPanel('name'),
        FieldPanel('job_title'),
        FieldPanel('bio'),
        ImageChooserPanel('image'),
        FieldPanel('contact_email'),
        FieldPanel('contact_phone'),
    ]

    def __str__(self):
        return self.name

    class Meta:
        ordering = ['name',]
Run Code Online (Sandbox Code Playgroud)

生物流场定义:

class BioInline(StructBlock):
    bio = SnippetChooserBlock(BioSnippet)

class BioBlock(StructBlock):
    overall_title = CharBlock(required=False)
    bios = ListBlock(BioInline())
Run Code Online (Sandbox Code Playgroud)

所有这些都可以,但是当我进入模板时,似乎无法访问代码段的值

{% for b in child.value.bios %}
    {{ b …
Run Code Online (Sandbox Code Playgroud)

python django wagtail wagtail-streamfield wagtail-snippet

2
推荐指数
1
解决办法
1228
查看次数

使用Wagtail CMS Snippets但在管理面板中隐藏

我正在构建基于Wagtail Snippets的自定义AdminModel,并在我的模型的AdminPanel中有一个自定义菜单.如何在不禁用的情况下隐藏/删除AdminPanel中的代码段选择?谢谢.

在此输入图像描述

django django-models django-admin wagtail wagtail-snippet

2
推荐指数
2
解决办法
538
查看次数

Wagtail admin,CheckboxSelectMultiple不保存数据

@register_snippet
class Numbers(models.Model):
    number = models.IntegerField()

class State(models.Model):
    state = models.CharField(max_length=100)
    number = ParentalManyToManyField(Numbers)


class HomeStateNumber(State):
    page = ParentalKey('home.HomePage', related_name='helpline')
    api_fields = ['state', 'number']

    panels = [
        FieldPanel('state'),
        FieldPanel('number',widget=forms.CheckboxSelectMultiple),
    ]

class HomePage(Page):

content_panels = [
    FieldPanel('title'),
    ImageChooserPanel('cover_page'),
    InlinePanel('ticker', label="ticker"),
    InlinePanel('helpline', label="helpline"),
]
Run Code Online (Sandbox Code Playgroud)

我想在状态中添加一个以上的数字,wagtail在管理员中显示正确的顺序,当您从多个选择数字并保存页面时,数据不会保存.它仍然是None(queryset)有没有其他方法可以做到这一点?我想我在某处做错了请帮助

python django django-admin wagtail wagtail-snippet

2
推荐指数
1
解决办法
307
查看次数