我正在尝试创建一个自定义的get_context_data,但我收到错误 get_context_data()需要1个位置参数但是2个被赋予,我不知道为什么
有人可以帮助我吗?为什么我会收到这个错误?以及我如何解决它?
提前致谢
class JobDetail(DetailView):
model = Job
template_name = 'employer/job_detail.html'
def get_context_data(self, **kwargs):
context = super(JobDetail, self).get_context_data(kwargs)
job = Job.objects.all()
sign_job = False
if self.request.user.is_authenticated():
get_job = SignJob.objects.filter(user=self.request.user, job=job) # TODO:look at how to get the job the right way
if self.request.method == 'POST':
SignJob.objects.create(user=self.request.user, job=job)
sign_job = get_job.exists()
context['sign_job'] = sign_job
return context
答案 0 :(得分:1)
您忘记了解kwargs
个参数:
context = super(JobDetail, self).get_context_data(kwargs)
应该是:
context = super(JobDetail, self).get_context_data(**kwargs)
另外,只是一个小建议,您可以像这样重写get_context_data
方法:
def get_context_data(self, **kwargs):
job = Job.objects.all()
sign_job = False
if self.request.user.is_authenticated():
get_job = SignJob.objects.filter(user=self.request.user, job=job) # TODO:look at how to get the job the right way
if self.request.method == 'POST':
SignJob.objects.create(user=self.request.user, job=job)
sign_job = get_job.exists()
return super(JobDetail, self).get_context_data(
sign_job=sign_job,
**kwargs
)