如何在 Django 中匹配不相关的表
How To Match Not Related Tables in Django
我有两个不相关的 table-
class DedupeDataModel(models.Model):
clean_name = models.CharField(max_length=200)
class SalesforceDataModel(models.Model):
clean_name = models.CharField(max_length=200)
salesforce_id = models.CharField(max_length=50)
我想匹配 table 中的 clean_name 列以获得 salesforce_ids 来自 SalesforceDataModel table。我已经尝试 select_related 来匹配 table,但由于它们不相关,所以我没有得到结果。请给出建议。提前致谢!!
你为什么不像下面这样查询它们?
matching_salesforce_ids=[]
for each in DedupeDataModel.objects.all():
models=SalesforceDataModel.objects.filter(clean_name=each.clean_name)
if len(models)>0:
matching_salesforce_ids.append(models.first().salesforce_id)
我假设每个人都有一个 SalesforceDataModel clean_name。
--编辑---
你也可以试试这个
clean_names=DedupeDataModel.objects.all().values('clean_name')
salesforceids=SalesforceDataModel.objects.filter(clean_name__in=clean_names).values('salesforce_id')
对不起,我不知道为什么我以前没有想过这个!
我有两个不相关的 table-
class DedupeDataModel(models.Model):
clean_name = models.CharField(max_length=200)
class SalesforceDataModel(models.Model):
clean_name = models.CharField(max_length=200)
salesforce_id = models.CharField(max_length=50)
我想匹配 table 中的 clean_name 列以获得 salesforce_ids 来自 SalesforceDataModel table。我已经尝试 select_related 来匹配 table,但由于它们不相关,所以我没有得到结果。请给出建议。提前致谢!!
你为什么不像下面这样查询它们?
matching_salesforce_ids=[]
for each in DedupeDataModel.objects.all():
models=SalesforceDataModel.objects.filter(clean_name=each.clean_name)
if len(models)>0:
matching_salesforce_ids.append(models.first().salesforce_id)
我假设每个人都有一个 SalesforceDataModel clean_name。
--编辑---
你也可以试试这个
clean_names=DedupeDataModel.objects.all().values('clean_name')
salesforceids=SalesforceDataModel.objects.filter(clean_name__in=clean_names).values('salesforce_id')
对不起,我不知道为什么我以前没有想过这个!