<p>如果要为每个<code>Fulfillment</code>对象保存一个新的<code>OutReq</code>对象,请在同一循环中进行。否则,您将只使用<code>ef</code>设置为的最后一个值。你知道吗</p>
<pre><code>for i in range(5):
ef = Fulfillment.objects.create(
fullfillment_uid=generateid(),
...
...
)
por = OutReq.objects.create(
out_req_uid=random.randint(500, 1000000000),
fulfillment_uid=ef.fullfillment_uid,
...
...
)
</code></pre>
<p>而且,Django使用<code>id</code>作为默认主键。你应该有一个很好的理由来改变这一点。所以,最好这样做</p>
<pre><code>for i in range(5):
ef = Fulfillment.objects.create(
...
...
)
por = OutReq.objects.create(
out_req_uid=random.randint(500, 1000000000),
fulfillment_uid=ef.id,
...
...
)
</code></pre>
<p>然后<code>Fulfillment</code>将自动获得一个名为<code>id</code>(别名为<code>pk</code>)的新主键,您可以在第二个对象中将其用作引用。你知道吗</p>
<p>此外,您可以在模型定义中声明<code>OutReq.fullfilment</code>是<code>Fullfillment</code>的外键,然后简单地分配对象,如下所示</p>
<pre><code>for i in range(5):
ef = Fulfillment.objects.create(
...
...
)
por = OutReq.objects.create(
out_req_uid=random.randint(500, 1000000000),
fulfillment=ef,
...
...
)
</code></pre>
<p>Django将自动创建一个字段<code>OutReq.fullfilment_id</code>,并将主键存储到<code>Fulfillment</code>实例中。然后你可以像<code>por.fulfillment.id</code>这样访问它</p>
<p><a href="https://docs.djangoproject.com/en/2.1/topics/db/models/" rel="nofollow noreferrer">Dango Models</a>如果你正确地使用它们,事情会变得容易得多。你知道吗</p>