Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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
Python 为什么要将父属性设置为as_视图、有效子类视图?_Python_Django - Fatal编程技术网

Python 为什么要将父属性设置为as_视图、有效子类视图?

Python 为什么要将父属性设置为as_视图、有效子类视图?,python,django,Python,Django,我有一个自定义的基于类的视图: class GreetingView(View): greeting = "Good Day" def get(self,request): return HttpResponse(self.greeting) class MorningGreetingView(GreetingView): greeting = "Morning to ya" My URL.py设置如下: urlpatterns = [ url(

我有一个自定义的基于类的视图:

class GreetingView(View):
    greeting = "Good Day"
    def get(self,request):
       return HttpResponse(self.greeting)

class MorningGreetingView(GreetingView):
    greeting = "Morning to ya"
My URL.py设置如下:

urlpatterns = [
    url(r'greeting/',GreetingView.as_view(greeting="G'day")),
    #override that in a subclass
    url(r'subgreeting/',MorningGreetingView.as_view()),
    #TODO (is a bug ? why I set the argument for the parent.as_view
    #method ,is effetive to subclass ...
] 当我去127.0.0.1:8000/子问候语/向我展示“G'day”时,应该是“早上好”!有人能帮我吗?
提前谢谢你

这里的问题在于您用于URL的正则表达式。他们应该是

url(r'^greeting/$', GreetingView.as_view(greeting="G'day")),
url(r'^subgreeting/$', MorningGreetingView.as_view()),
请注意
^
$
,它们为regexp标记startswith和endswith

如果没有这两个,字符串“subgreeting”总是与regexp“greeting”匹配,因为“greeting”是“subgreeting”中的子字符串。这就是调用第一个url的原因