Wagtail管理员模型选择器
项目描述
一个为Wagtail提供方便方法的插件,用于设置任意模型的选择器模态。
安装
使用pip安装
pip install wagtail-modelchooser
然后将它添加到您的INSTALLED_APPS
INSTALLED_APPS = [
# ...
'wagtailmodelchooser',
# ...
]
它与Wagtail 4.0及更高版本兼容。对于旧版本的Wagtail,请检查该软件包的早期版本。
快速入门
要启用您模型的选择器,您必须注册该模型。对于简单情况,使用@register_model_chooser装饰您的模型
from django.db import models
from wagtailmodelchooser import register_model_chooser
@register_model_chooser
class Author(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
# The ``str()`` of your model will be used in the chooser
return self.name
然后,您可以在编辑处理定义中使用FieldPanel,或者在StreamField定义中使用ModelChooserBlock
from wagtail.wagtailcore.blocks import RichTextBlock
from wagtail.wagtailcore.fields import StreamField
from wagtail.wagtailcore.models import Page
from wagtail.wagtailadmin.edit_handlers import FieldPanel
from wagtailmodelchooser.blocks import ModelChooserBlock
class Book(Page):
name = models.CharField(max_length=255)
author = models.ForeignKey(Author)
content_panels = [
FieldPanel('name'),
FieldPanel('author'),
]
class ContentPage(Page):
body = StreamField([
('text', RichTextBlock()),
('author', ModelChooserBlock('books.Author')),
])
content_panels = [
StreamFieldPanel('body'),
]
自定义选项
如果您想自定义模型选择器模态的内容或行为,您有多种选择。以下是一些示例来展示这些选项。
如果您想在弹出窗口中添加一个额外的过滤器字段,您可能可以这样操作
from django.db import models
from wagtailmodelchooser import register_model_chooser, Chooser
class City(models.Model):
name = models.CharField(max_length=255)
capital = models.BooleanField()
def __str__(self):
# The ``str()`` of your model will be used in the chooser
return self.name
@register_model_chooser
class CityChooser(Chooser):
model = City
modal_template = 'app_name/city_modal.html'
modal_results_template = 'app_name/city_modal_results.html'
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.GET.get('capital'):
qs = qs.filter(capital=request.GET.get('capital') == '0')
return qs
由于 wagtailmodelchooser 主要基于已在Wagtail中找到的 ChooserViewSet 功能,如果您希望进行更深入的定制,建议直接使用该功能。
项目详情
下载文件
下载您平台对应的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源代码分发
wagtail-modelchooser-4.0.1.tar.gz (9.9 kB 查看哈希值)
构建分发
关闭
wagtail-modelchooser-4.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ec1c9c7598cdc019683c7e93ed95b0acf1d32b9b24e8a564b8f373bf48a9ed36 |
|
MD5 | a7f90b3fa3cf387c4ea85ac1456fce1f |
|
BLAKE2b-256 | cb161609db0fb3d7aaac1693424f6aafa6af90dbcd6f49295aae93739faeeabc |
关闭
wagtail_modelchooser-4.0.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b7ea0fb81cdd7367ed90dff043289e264502d97a9297b7fb69c148a0a81cee6a |
|
MD5 | 3b1c1e5f1d1946603edb89e0b709684a |
|
BLAKE2b-256 | 6f62bf5d063ae5bd3e9ddfca750da1e22c3f57779a34ace1e864c672b580ad33 |