0

複数テーブルの継承を使用するように DB の一部を再設計したところ、はるかに簡単になりました。

1 つ質問があります。テーブルに何千もの行を手動で挿入しようとしていますが、その方法がわかりません。

例: 前:

class personal(models.Model):
    who = models.CharField...
    stamp = models.DateTime...
    title = models.CharField ...
    descr = models.CharField ...

そしてpythonシェルで:

for i in range(1000):
    t=datetime.now()
    e=timedelta(minutes=i)
    entry = personal(who='xyz', stamp=t+e, title='title '+str(i), descr='description for '+str(i)
    entry.save()

後:

class common(models.Model):
    who ...
    stamp ...

class personal(common):
    title ...
    descr ...

そして、Pythonシェルで上記と同じことをすると、個人にはwho/stampという名前の列がないと表示されます

私の質問:新しいデータベースに複数の行を挿入するために「for」の上を調整するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

おそらく抽象モデルの継承が必要です。

class common(models.Model):
    who ...
    stamp ...

    class Meta:
        abstract = True

class personal(common):
    title ...
    descr ...

次に、上記のコードが機能するはずです。

編集:

非抽象継承の場合、挿入コードは次のようになります。

for i in range(1000):
    t=datetime.now()
    e=timedelta(minutes=i)
    base = common.objects.create(who='xzy', stamp=t+e)
    entry = personal.objects.create(common_ptr=base, title='title '+str(i), descr='description for '+str(i)
于 2011-11-17T14:15:44.713 に答える