在 Wagtail 中使用 InlinePanel 创建模型实例
Create a model instance with InlinePanel in Wagtail
你知道如何使用 InlinePanel 创建模型的实例吗
我不想添加一个现有的实例,但我想创建一个新实例以及 ParentalKey
在我的例子中,ParentalKey
是家庭,人是 ForeignKey
here the documentation about 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
就是这样!我只是把它复杂化了,原来如此简单
你知道如何使用 InlinePanel 创建模型的实例吗
我不想添加一个现有的实例,但我想创建一个新实例以及 ParentalKey
在我的例子中,ParentalKey
是家庭,人是 ForeignKey
here the documentation about 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
就是这样!我只是把它复杂化了,原来如此简单