我是Django的新手并在遗留数据库中使用它,我想执行一个非常简单的表连接。
Table1:Purchase
PurchaseId(PK)
SupplierId(FK)
Date
Table2:Supplier
SupplierId(PK)
Name
使用SyncDB后,它创建了
模型
class Purchase(models.Model):
purchaseid = models.AutoField(primary_key=True,db_column=u'PurchaseId')
supplierid = models.ForeignKey(Supplier, db_column=u'SupplierId')
date = models.DateTimeField(db_column=u'Date')
class Supplier(models.Model):
supplierid = models.AutoField(primary_key=True,db_column=u'SupplierId')
name = models.CharField(max_length=45, db_column=u'name', blank=True)
我想得到一个简单的连接结果,根据我试过的其他帖子
查看
def purchaseList(request):
purchase_list = Purchase.objects.extra(tables=["Supplier"],
where=["Purchase.supplierId = Supplier.supplierid"])
return render_to_response('purchaseList.html', {'purchase_list': purchase_list})
这是正确的方法吗?如何在模板中的表格报告中获取Purchase.Date和Supplier.Name?我试过谷歌搜索答案,但我找不到任何答案,我希望这不是一个重复的问题。非常感谢提前!
答案 0 :(得分:1)
您不需要通过外键告诉ORM加入相应的ID。您所需要的只是 love select_related(),请参阅https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related
查询将如下所示:
purchase_list = Purchase.objects.select_related().all()