我有两个模型类A和B,我想将表A的某些行移到表B,我想知道如何正确地做到这一点。
models.py
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=200)
class A(models.Model):
title = models.CharField(max_length=200)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
class B(models.Model):
title = models.CharField(max_length=200)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
views.py
的代码from models import A, B
def move(request):
filtered_a = A.objects.filter(category=2)
"""
Here I want to move filtered_a rows to B table,
and how to deal with the id
"""
请不要谈论迁移,它是单击操作后的一种处理方式,欢迎您使用任何干净快捷的方式进行迁移。
先谢谢您。
答案 0 :(得分:0)
def move(request):
filtered_a = A.objects.filter(category=2)
filtered_b = [B(**a) for a in filtered_a]
B.objects.bulk_create(filtered_b)
这应该可以解决问题。如果您的查询集将变得庞大,我建议在循环时使用迭代器。
[B(**a) for a in filtered_a.iterator()]