擅长:python、mysql、java
<p>你不需要在关系的两边加上<code>ManyToManyField</code>。<a href="http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships" rel="nofollow">Django will do that for you</a>。</p>
<p>你可能想要这样的东西:</p>
<pre><code>class Model1(models.Model):
name = models.CharField(max_length=128)
...
class Model2(models.Model):
name = models.CharField(max_length=128)
othermodels = models.ManyToManyField(Model1, through='Model1Model2')
...
class Membership(models.Model):
class Meta:
db_table = 'model1_model2'
model1 = models.ForeignKey(Model1)
model2 = models.ForeignKey(Model2)
</code></pre>
<p>使用模型时,<code>Model1</code>的实例将有一个由django自动添加的<code>othermodels_set</code>字段。<code>Model2</code>的实例将具有<code>othermodels</code>。</p>