0
TemplateView
에서 상속받은 JobView
으로 장고 응용 프로그램을 작성했습니다. get 메소드에는 URL에 추가 인수 (job_id)가 필요합니다. 기본적으로, 내 urls.py
은 다음과 같습니다Django - 다른 서명이있는 TemplateView.get을 재정의합니까?
# views.py
from django.views.generic import TemplateView
from django.http import HttpResponse
class JobView(TemplateView):
def get(self, request, job_id):
# Some stuff
return HttpResponse("something")
pylint이 코드를 확인, 나는이 오류가 : [arguments-differ] Arguments number differs from overriden 'get' method
이
# urls.py
from django.conf import url
from .views import JobView
urlpatterns = [
url(r'^job/(?P<job_id>[0-9]+)$',
JobView.as_view())
views.py는 JobView의 정의가 포함되어 있습니다.
가TemplateView.get
방법을 맞추려면
JobView.get
의 정의는 다음과 같아야합니다
class JobView(TemplateView):
def get(self, request):
# Some stuff
는 다른 서명 나쁜 연습 무시되어 있습니까? 그렇다면 어떻게 구현해야합니까?
나쁘지는 않지만 직접 응답을 반환하기 위해 'get'을 재정의하면 기본보기가 아닌 TemplateView를 무시할 때 전혀 문제가되지 않는 것 같습니다. –
이 시점에서 옳은 점이 있지만 일부 코드가 누락되어 'TemplateView'가 의미가 있습니다. 그러나'base.View'는'get()'메서드를 가지고 있지 않으므로이 문제를 제거합니다. 내 코드가 나쁜 습관이라면 좋은 해결책이 될 수 있습니다. 감사! – Dunatotatos