如何在管理页面上使用 RadioSelect 在 Wagtail 中制作 ManyToOne?
How to make a ManyToOne in Wagtail with RadioSelect on admin page?
我想在管理员中为我的博客类别设置一个单选 select 选项。 ManyToMany 字段不适用于 RadioSelect 小部件。
我希望类别与文章是多对一关系。现在我有一个 ParentalManyToMany 字段,我为博客类别注册了片段。
class BlogPage(Page):
...
category = ParentalManyToManyField('blog.ArticleCategory', blank=True)
...
@register_snippet
class ArticleCategory(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=80)
panels = [
FieldPanel('name'),
FieldPanel('slug'),
]
def __str__(self):
return self.name
我不知道如何将其更改为 ManyToOne 选项,因此我可以使用单选select 而不是 CheckboxSelectMultiple。
不胜感激。谢谢!
many-to-one 关系是一个 ForeignKey
字段。默认情况下,这些将使用 select 下拉列表作为表单字段,但您可以通过在 FieldPanel
:
上传递 widget
参数来覆盖它
from django import forms
class BlogPage(Page):
...
category = models.ForeignKey('blog.ArticleCategory', null=True, blank=True, on_delete=models.SET_NULL)
content_panels = [
...
FieldPanel('category', widget=forms.RadioSelect),
]
我想在管理员中为我的博客类别设置一个单选 select 选项。 ManyToMany 字段不适用于 RadioSelect 小部件。
我希望类别与文章是多对一关系。现在我有一个 ParentalManyToMany 字段,我为博客类别注册了片段。
class BlogPage(Page):
...
category = ParentalManyToManyField('blog.ArticleCategory', blank=True)
...
@register_snippet
class ArticleCategory(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=80)
panels = [
FieldPanel('name'),
FieldPanel('slug'),
]
def __str__(self):
return self.name
我不知道如何将其更改为 ManyToOne 选项,因此我可以使用单选select 而不是 CheckboxSelectMultiple。
不胜感激。谢谢!
many-to-one 关系是一个 ForeignKey
字段。默认情况下,这些将使用 select 下拉列表作为表单字段,但您可以通过在 FieldPanel
:
widget
参数来覆盖它
from django import forms
class BlogPage(Page):
...
category = models.ForeignKey('blog.ArticleCategory', null=True, blank=True, on_delete=models.SET_NULL)
content_panels = [
...
FieldPanel('category', widget=forms.RadioSelect),
]