在Django的select_related中创建关系的别名
我有一个模型:在Django的select_related中创建关系的别名,django,alias,relation,django-select-related,Django,Alias,Relation,Django Select Related,我有一个模型: 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.
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}
。但是我不能将模型重命名为simpleSeo
有可能吗?
是否选择\u related
允许它?声明如下关系:
rubric = models.OneToOneField(Rubric, related_name='seo')
然后,您可以通过以下方式访问相关模型:
{{ rubric.seo.title}}
您可以在模型定义中使用
related\u name
class RubricSeo(models.Model):
rubric = models.OneToOneField(Rubric, related_name='seo')
title = models.CharField(max_length=255)
您仍然需要使用选择\u related
rubric = Rubric.objects.select_related('seo').get(id=rubric_id)