我有10萬個記錄在兩個模型「A」,並在模型「B」比較模型B的場的Django模型A的字段的值
例:
class A(models.Model):
user_email = models.EmailField(null=True, blank=True)
user_mobile = models.CharField(max_length=30, null=True, blank=True)
book_id = models.CharField(max_length=255, null=True, blank=True)
payment_gateway_response = JSONField(blank=True, null=True)
class B(models.Model):
order = models.ForeignKey(A, null=True, blank=True)
pay_id = models.CharField(max_length=250, null=True, blank=True)
user_email = models.EmailField(null=True, blank=True)
user_mobile = models.CharField(max_length=30, null=True, blank=True)
created = models.DateTimeField(blank=True, null=True)
total_payment = models.DecimalField(decimal_places=3, max_digits=20, blank=True, null=True)
我想用獲得B的對象A的值
例如
all_a = A.objects.all()
for a in all_a:
b = B.objects.filter(user_email=a.user_email, user_mobile=a.user_mobile)
這很好,我得到的結果。但是,因爲它是10萬條記錄,所以花費的時間太多了。循環迭代需要時間。 django有沒有更快的方法來做到這一點?
你究竟在爲循環使用什麼?當你得到它時,你用'b'做什麼? – Sayse
它只是用於比較交易。沒有更多 – Gaurav