在Wagtail中使用管理页面上的RadioSelect制作ManyToOne关系,可以通过以下步骤实现:
Author
和Book
,一个作者可以有多本书,但一本书只能有一个作者。在Book
模型中,我们可以定义一个author
字段来表示该书的作者:from django.db import models
from wagtail.admin.edit_handlers import FieldPanel
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
panels = [
FieldPanel('title'),
FieldPanel('author', widget=forms.RadioSelect),
]
Book
模型的author
字段上使用了widget=forms.RadioSelect
,这将在管理页面上显示一个单选按钮列表,用于选择作者。BookPage
模型表示网站上的书籍页面,我们可以在BookPage
的编辑界面中添加author
字段:from wagtail.core.models import Page
from wagtail.admin.edit_handlers import FieldPanel
class BookPage(Page):
book = models.ForeignKey(Book, on_delete=models.CASCADE)
content_panels = Page.content_panels + [
FieldPanel('book__author', widget=forms.RadioSelect),
]
在上述代码中,我们使用FieldPanel
将book__author
字段添加到BookPage
的编辑界面中,并使用widget=forms.RadioSelect
来显示单选按钮列表。
通过以上步骤,我们可以在Wagtail中使用管理页面上的RadioSelect制作ManyToOne关系。在编辑页面时,可以通过单选按钮列表选择ManyToOne关系的相关对象。
领取专属 10元无门槛券
手把手带您无忧上云