擅长:python、mysql、java
<p>如果我理解你的“演员”概念,它就不会像你描述的那样有效。在</p>
<p>但是,要使模型继承工作,您需要使用<a href="https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance" rel="nofollow">abstract models (see docs)</a></p>
<pre><code>class Record(models.Model):
# Some generic fields
class Meta:
abstract = True
class TTAMRecord(Record):
client = models.ForeignKey(TTAMClient)
</code></pre>
<p>如果您需要<code>Record</code>和{<cd2>}都存储在<code>Account</code>中,那么您将需要使用多态关系,在Django中它被称为<a href="https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1" rel="nofollow">Generic Relations (see docs)</a></p>
<p>您将需要一个中介模型来存储这些通用关系。所以,基本上你会有一个<code>AccountRecord</code>和一个<code>Account</code>模型:</p>
^{pr2}$
<p>所以你可以:</p>
<pre><code>account = Account.objects.get(...)
for record in account.records.all():
record_content = record.content_object
if isinstance(record_content, TTAMRecord):
client = record_content.client
else:
# No client available
</code></pre>