6

私はこのモデルクラスを持っています:

class Article(models.Model):
    [many fields]

class ArticleArchive(models.Model):
    [same fields as Artilce model]

Article テーブルからオブジェクトを取得し、それを ArticleArchive テーブルに移動します。

articles = Article.objects.filter(date__year=2011)
for art in articles:
    [and there moving objects]

どうやってするの?

4

3 に答える 3

10
articles = Article.objects.filter(date__year=2011).values()
for art in articles:
    ArticleArchive.objects.create(**art)
于 2012-05-22T07:32:44.453 に答える
6

パフォーマンスを向上させるには、次を使用することをお勧めしますArticleArchive.objects.bulk_create(...)

articles = list()
for article in Article.objects.filter(date__year=2011).values():
    articles.append(ArticleArchive(**article))
if (len(articles) > 0):
    ArticleArchive.objects.bulk_create(articles)

次に、元のテーブルから記事を削除する場合 (オプション):

Article.objects.filter(date__year=2011).delete()
于 2014-08-20T11:42:07.660 に答える
1

私はあなたの問題の地殻を得ることができなかったようですが、ループでこれを簡単に行うことができます:

obj, created = ArticleArchive.objects.get_or_create( your fields )
于 2012-05-22T07:33:37.853 に答える