使用Wagtail页面或Django模型的指南?

使用Wagtail页面或Django模型的指南?,django,wagtail,wagtail-admin,Django,Wagtail,Wagtail Admin,例如,我想用wagtail建立一个电子商务网站,其中一个组件是订单。我认为订单不应该是摇摆页面,而是简单的Django模型,请参见下面的代码 来自django.db导入模型的 从wagtail.admin.edit\u导入( 现场小组, StreamFieldPanel, 多场板, 内联专家组, ) 从wagtail.core.fields导入RichTextField 从wagtail.core.models导入页面 #由于产品的详细信息是向用户显示的,所以需要有一个页面。 XyzProduc

例如,我想用wagtail建立一个电子商务网站,其中一个组件是订单。我认为订单不应该是摇摆页面,而是简单的Django模型,请参见下面的代码

来自django.db导入模型的

从wagtail.admin.edit\u导入(
现场小组,
StreamFieldPanel,
多场板,
内联专家组,
)
从wagtail.core.fields导入RichTextField
从wagtail.core.models导入页面
#由于产品的详细信息是向用户显示的,所以需要有一个页面。
XyzProductPage类(第页):
template=“product/product\u page.html”
name=models.CharField(最大长度=100)
desc=RichTextField(blank=False,null=True)
内容面板=第页内容面板+[
现场面板(“名称”),
现场面板(“描述”),
]
XyzOrderedProduct类(models.Model):
产品=型号。外键(
“XyzProductPage”,在_delete=models.CASCADE上,相关的_name=“+”
)
订单=型号。外键(
“XyzOrder”,在_delete=models.CASCADE上,相关的_name=“已订购的产品”
)
#订单不会显示给用户,只供内部使用,所以请使用Django模型
类XyzOrder(models.Model):
面板=[
#对于每个订单,我想在wagtail管理界面上显示所有订购的产品,
#所以我尝试使用这个多场面板,但似乎不起作用,为什么?
多场板(
[InlinePanel(“订购的产品”,label=“订购的产品”,)],
heading=“订购的产品”,
),
]
我还为上述Django模型定义了
ModelAdmin
,因此我可以在wagtail管理UI上看到它们

我的问题是

  • 何时使用wagtail页面模型,何时使用Django模型? 在上面的例子中,订单被定义为Django模型,或者我应该使用Page

  • 如何正确使用Django型号的面板? 我看到一些教程,我可以为Django模型使用面板,但在上面的代码中,我想在wagtail管理UI上列出每个订单中的所有订购产品(即,
    XyzOrder
    ),但它不起作用

  • 如何选择多个订单并批量删除? 看起来wagtail管理员不支持Django模型的批量选择和删除,但Django管理员支持。那么我们如何进行批量选择和删除呢


  • 你好!首先,我想知道你为什么决定使用摇尾。使用Django创建webshop类型的网站还有很多其他方法,有时甚至更好。有没有什么特别的要求让你选择摇摆尾巴?@Nicogriffoien嘿,谢谢你的提问!TBH我不确定wagtail是否适合ecom网站,我想在ecom上有一个博客,并找到了wagtail。还有其他选择吗?很有可能把好的老Django和Wagtail博客结合起来。您可以为您的产品/订单等创建Django模型,并仅对需要CMS的内容使用Wagtail。我建议你先建立一个正规的Django网店(也许可以看看类似的东西)。然后,稍后,将Wagtail集成到现有网站中就相当简单了。请参阅wagtail文档的一部分。@Nicogriffoien,非常感谢您的建议。