我有两种不同的页面模型(没有子类,单独的应用程序,只有相似的字段是通用的,例如“模型名称”,“ id”,“零件”),比如说汽车和摩托车。我正在制作一个单独的页面,其中包含它们的零件表(该零件表还需要包含“ id”(我认为可以是pk,“网上商店链接”和“ used by”之类的列),这些列将显示所有Bike和Car使用零件的模型);由于它们可以共享几个相同的部分,因此我希望它们连接到相同的Tag模型(而不是具有“ CarPageTag”和“ BikePageTag”);到目前为止我已经尝试过的内容:
AssertionError:ParentalKey(['CarsBlogApp.CarDetailPage','BikesBlogApp.BikeDetailPage'])无效。第一个参数为ForeignKey必须是模型,模型名称或字符串'self'
设置单独的CarPageTag
和BikePageTag
模型是您想要的解决方案(假设它们是TaggedItemBase
,as per the pattern shown in the Wagtail documentation的子类)。
TaggedItemBase
本身不是标签模型-它只是定义页面模型和标签模型之间的关系(在本例中为taggit.Tag
,这是django-taggit库默认提供的标准标签模型)。因此,CarPageTag
设置CarPage
和taggit.Tag
之间的关系,BikePageTag
设置BikePage
和taggit.Tag
之间的关系-两者都使用相同的标签模型。
如果您did希望汽车和自行车维护自己独立的标签集,则需要使用其他模式-custom tag models。