如何在 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')

对不起,我不知道为什么我以前没有想过这个!