为什么基于django类的视图(DetailView)仅适用于特定的变量名称

问题描述 投票:0回答:1

我的英语不好,我事先表示歉意。我的下一个问题是要理解为什么例如具有DetailView类的变量template_name仅与该变量名称完全兼容。

例如,在views.py中:

from django.views.generic import DetailView

    # /appPruebaDos/detailView/<int:pk>
    class DetailViewObject(DetailView):
        model = Articulo
        template_name = "plantillaDetailView.html" # varible fijado del tipo DetailView

为什么我不能使用其他变量,如(这不起作用):

# /appPruebaDos/detailView/<int:pk>
class DetailViewObject(DetailView):
    model = Articulo
    templateName = "plantillaDetailView.html" # varible fijado del tipo DetailView

我认为template_name字段是在DetailView依赖项中定义的,但是如何以及在何处定义?

python django detailview
1个回答
1
投票

遵循一种语言的标准约定是一种好习惯。在Python中,标准标识符命名约定为Snake Case(示例:template_name)。

第二,templateName不起作用而template_name起作用的原因是,因为您继承的类(DetailView)在您的类中寻找名为template_name的属性。

[您可以看到Django尝试在Django的Github存储库中找到template_name的方式。这是Django视图基类的link,它实现了一个名为get_template_names()的函数。

© www.soinside.com 2019 - 2024. All rights reserved.