Person
モデル、モデルDemographic
、およびPersonDemographic
両方のモデルのデータを使用した詳細なメソッドを含むモデルがあり、特定の個人人口統計インスタンスのフィールドとして非常に高価な計算を保存します。PersonDemographic
モデルへのエントリを容易にするために一括作成を使用するにはどうすればよいですか?
class Person(models.Model):
name = models.CharField(max_length=254)
details = a bunch of fields ...
class Demographic(models.Model):
name = models.CharField(max_length=254)
details = a bunch of fields ...
class PersonDemographic(models.Model):
person = models.ForeignKey(Person)
demographic = models.ForeignKey(Demographic)
expense_calc_property = models.FloatField(null=True)
@property
def random_property(self):
calc using person/demographic details
@property
def expense_calc(self):
if not expensive_calc_property:
self.expensive_calc_property = results from expensive calc
self.save()
return self.expensive_calc_property
では、単一の人口統計インスタンスとの照合PersonDemographic.objects.bulk_create([])
など、大規模なクエリ セットを使用するにはどうすればよいでしょうか? 言い換えれば、次のものを置き換えるもの:Person.object.some_query_set()
demographic = Demographic.objects.get(id=7)
demographic = Demographic.objects.get(id=7)
for person in Person.objects.some_query_set():
pg = PersonDemographic.objects.create(person=person, demographic=demographic)
pg.save()