python - 在 Wagtail 中使用 InlinePanel 创建模型实例
问题描述
您知道如何使用 InlinePanel 创建模型的实例吗?我不想添加现有的实例,但我想创建一个新实例以及ParentalKey
在我的情况下,ParentalKey
是家庭,人是ForeignKey
这里关于 wagtail InlinePanel 的文档
@register_snippet
class Family(ClusterableModel):
title = models.CharField(verbose_name=_("family title"), max_length=100)
panels = Page.content_panels + [
InlinePanel("persons", label=_("Persons")),
]
class FamilyPerson(Orderable):
person = models.ForeignKey("crm.Person", on_delete=models.CASCADE)
family = ParentalKey(
"crm.Family", on_delete=models.CASCADE, related_name="persons"
)
@register_snippet
class Person(models.Model):
SEX_CHOICES = [("M", _("Male")), ("F", _("Female"))]
title = models.CharField(verbose_name=_("person title"), max_length=100)
age = models.PositiveIntegerField(
verbose_name=_("age")
)
sex = models.CharField(
max_length=12, choices=SEX_CHOICES
)
解决方案
我找到了解决方案:
@register_snippet
class Family(ClusterableModel):
title = models.CharField(verbose_name=_("family title"), max_length=100)
panels = Page.content_panels + [
InlinePanel("persons", label=_("Persons")),
]
class Person(Orderable):
family = ParentalKey(
"crm.Family", on_delete=models.CASCADE, related_name="persons"
)
SEX_CHOICES = [("M", _("Male")), ("F", _("Female"))]
title = models.CharField(verbose_name=_("person title"), max_length=100)
age = models.PositiveIntegerField(
verbose_name=_("age")
)
sex = models.CharField(
max_length=12, choices=SEX_CHOICES
这就对了!我只是把它复杂化了,它是如此简单
推荐阅读
- javascript - 如何在 URI 中使用 # 符号在 JavaScript 中调用 API?
- angular-material2 - 通过 ag-grid 使用 Material Autocomplete 进行内联编辑
- sql-server - 执行动态 SQL 以执行 Stored Proc 并获取结果字符串
- audio - 可以只调用一次 IAudioClient::SetEventHandle 吗?
- apache - htaccess :将根目录重定向到 index.html
- c# - 在列表中查找最大对象字段值
- javascript - 在条件中使用“0”时,为什么“0”会在 React 中呈现?
- python - 我无法在 Python 中更新我的 SQL 数据库,但可以添加新行
- python - 如何:pygame中灰点颜色的重叠
- java - 如何验证请求正文的字段是数字?