我一直在谷歌搜索,我似乎没有得到它。
如何在django中重新创建简单连接查询?
在models.py(Fylker是县,Dagensrepresentanter是人)
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)。
附加要求: 我已经在stackoverflow上阅读了django文档和相当多的问题,但我似乎无法理解这个ORM的事情。这是受到伤害的疑问。对于习惯于将数据库视为SQL事物的人,您是否有任何好的资源(有经验/解释的博客等),需要开始用django ORM术语思考?
答案 0 :(得分:0)
您的旧数据库可能没有外键约束(例如,如果它使用MyISAM,则甚至不支持外键)。
您有两种选择: