Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问反向名称为&x27+';在Django?_Django - Fatal编程技术网

如何访问反向名称为&x27+';在Django?

如何访问反向名称为&x27+';在Django?,django,Django,如何定义从另一个对象到这个对象的反向关系,并将“+”作为其相关名称 class FeaturedContentPage(Page): featured_page = models.ForeignKey( 'wagtailcore.Page', null=True, blank=True, on_delete=models.SET_NULL, related_name='+', ) 以'+'结尾的相关

如何定义从另一个对象到这个对象的反向关系,并将“+”作为其相关名称

class FeaturedContentPage(Page):
    featured_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )

'+'
结尾的
相关名称的想法是禁用创建反向关系,如下所示:

如果您希望Django不创建向后关系,请将相关名称设置为
'+'
,或以
'+'
结束

当然,您仍然可以使用以下方法进行反向查询:

FeaturedContentPage.objects.filter(featured_page=my_page)

但因此没有反向构造的关系,因此
my\u page.featuredcontentpage\u set
不可访问。

相关的\u name
参数用于反向关系名称。如果一个模型有两个字段引用同一个模型

featured_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )
regular_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )

没有
related_name='+'
django会抱怨,因为它使用
wagtailcore.Page
model name作为反向关系。由于对象中的两个属性不能具有相同的名称,因此将
相关的\u name='+'
设置为一个或两个字段将忽略创建反向关系。

+
设置为不可访问。如文档所述:“如果您希望Django不创建向后关系,请将related_name设置为“+”或以“+”结尾。例如,这将确保用户模型不会与此模型有向后关系”