0

我有模型:

Rubric(models.Model):
    name  = models.CharField(max_length=255)

Rubric 有 seo 参数

class RubricSeo(models.Model):
    rubric = models.OneToOneField(Rubric)
    title  = models.CharField(max_length=255)

要使用 seo 选择量规,我必须使用:

rubric = Rubric.objects.select_related('rubricseo',).get(id=rubric_id)

然后在模板中使用:

{{ rubric.rubricseo.title}}

但我需要为这种关系创建一个别名rubricseo(我的意思是LEFT JOIN rubricseo as seo...),然后使用{{ rubric.seo.title}}. 但我无法将模型重命名为 simple Seo

有可能吗?select_related允许吗?

4

2 回答 2

1

像这样声明关系:

rubric = models.OneToOneField(Rubric, related_name='seo')

然后您可以通过以下方式访问相关模型:

{{ rubric.seo.title}}
于 2014-08-06T13:22:18.420 回答
1

您可以related_name在模型的定义中使用。

class RubricSeo(models.Model):
    rubric = models.OneToOneField(Rubric, related_name='seo')
    title  = models.CharField(max_length=255)

你仍然需要使用select_related

rubric = Rubric.objects.select_related('seo').get(id=rubric_id)
于 2014-08-06T13:26:23.773 回答