我的models.py中定义了两个模型:
class model1(models.Model):
name = models.CharField(max_length=100, unique=True)
desc = models.CharField(max_length=1000, blank=True, null=True)
def __unicode__(self):
return u'ID: %s, name - %s, description - %s' % (str(self.pk), self.name, self.desc)
class model2(models.Model):
description = models.CharField(max_length=500, blank=True, null=True)
repo_id = models.ForeignKey(model1, to_field='id', db_column="repo_id", null=False)
content = models.TextField(blank=True)
def __unicode__(self):
return u'ID: %s, rpt_repo_id - %s, created_date - %s' % (str(self.pk), str(self.repo_id.pk), self.created_date)
我想从model2查询以从model1获取名称,其中model1的id(pk)是model2的rpt_repo_id的值。以下查询在此处不起作用:
saved_reports = models.model2.objects.all()
尽管{{ repo_id.name }}
在html中工作得很好。
在视图中使用与模板中相同的技术:
如果您知道model1对象的id,并希望使用它来获取model2对象:
Django自动为外键创建reverse relationships。这意味着,如果您有一个
model1
对象,则可以获得其相关的model2
对象,即使您只在model2
对象中定义了外键:model2()中没有字段“name”,它在相关表model1()中
将
str(self.repo_id.pk)
更改为str(self.repo_id.id)
相关问题 更多 >
编程相关推荐