我一直在谷歌上搜索,但我似乎没有得到它。
如何在 django 中重新创建简单的连接查询?
在 models.py 中(Fylker 是县,Dagensrepresentant 是人)
class Fylker(models.Model):
id = models.CharField(max_length=6, primary_key=True)
navn = models.CharField(max_length=300)
def __unicode__(self):
return self.navn
class Meta:
db_table = u'fylker'
class Dagensrepresentanter(models.Model):
id = models.CharField(max_length=33, primary_key=True)
etternavn = models.CharField(max_length=300, blank=True)
fornavn = models.CharField(max_length=300, blank=True)
fylke = models.ForeignKey(Fylker, db_column='id')
def __unicode__(self):
return u'%s %s' % (self.fornavn, self.etternavn)
class Meta:
ordering = ['etternavn'] # sette default ordering
db_table = u'dagensrepresentanter'
由于模型是由 django 自动创建的,因此我添加了 ForeignKey 并尝试将其连接到县。id 字段是从我试图集成到这个 django 项目中的 db 继承的。
通过查询
Dagensrepresentanter.objects.all()
我得到所有的人,但没有他们的县。通过查询
Dagensrepresentanter.objects.all().select_related()
我加入了 Dagensrepresentanter.id 和 Fylker.id,但我希望他们加入到 fylke,又名
SELECT * FROM dagensrepresentanter d , fylker f WHERE d.fylke = f.id
这样我就可以在与所有人相同的结果集中获得县名(Fylke navn)。
附加请求:我已经阅读了 django 文档和 stackoverflow 上的很多问题,但我似乎无法理解这个 ORM 问题。这是伤害的查询。对于习惯于将数据库视为 SQL 事物、需要开始以 django ORM 术语思考的人,您是否有任何好的资源(具有经验/解释的博文等)?