擅长:python、mysql、java
<p>我不确定它是否适合您的问题,但在这种情况下使用<a href="https://docs.djangoproject.com/en/2.1/ref/contrib/contenttypes/" rel="nofollow noreferrer">GenericForeignKeys/ContentType framework</a>可能是合适的。当一个人掌握了这个概念,它是相当强大的。在</p>
<p>构造示例:</p>
<pre><code>class Page(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
page_element = GenericForeignKey('content_type', 'object_id')
...
</code></pre>
<p>现在可以通过GenericFK将任何模型对象连接到页面模型。因此,在以后的阶段添加一个新类型(作为一个新的模型),并不具有侵入性。在</p>
<p><strong>更新:</strong></p>
<p>正如一条评论所指出的那样,这个构造并不能很好地支持页面中的许多pageElement。在</p>
<p>详细说明一下,解决这个问题的一个方法,仍然是利用通用的。。。在</p>
^{pr2}$
<p>一个页面可以有许多“抽象”的PageElements,而content_对象是“具体的PageElement模型/实现”。
易于检索特定页面的所有元素,并允许检查ContentType来检查元素的类型等</p>
<p>只是解决这个特殊问题的许多方法中的一种。在</p>