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的原因