我有模特:
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)
要选择我必须使用的标题:
rubric = Rubric.objects.select_related('rubricseo',).get(id=rubric_id)
然后在模板中使用:
{{ rubric.rubricseo.title}}
但我需要为此关系创建别名rubricseo
(我的意思是LEFT JOIN rubricseo as seo...
),然后使用{{ rubric.seo.title}}
。但我不能将模型重命名为简单的Seo
。
有可能吗? select_related
允许吗?
答案 0 :(得分:1)
声明这样的关系:
rubric = models.OneToOneField(Rubric, related_name='seo')
然后您可以通过以下方式访问相关模型:
{{ rubric.seo.title}}
答案 1 :(得分: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)