我正在构建一个django网络应用程序,要求用户能够申请工作。
以下是申请人的相关模型:
class Applicant(models.Model):
job = models.ForeignKey(Job)
user = models.ForeignKey(User)
date = models.DateTimeField(auto_now_add=True)
class Meta:
# So that the same user can't apply to the same job twice.
unique_together = [("job", "user"),]
以下是使用此模型创建和保存申请人的视图:
@login_required
def job_apply(request, job_pk):
# Get the job that the user has applied for.
job = get_object_or_404(Job, pk=job_pk)
applicant = models.Applicant(job=job, user=request.user)
applicant.save()
return reverse('jobs:find')
这是django给我的错误信息:
Exception Type: AttributeError
Exception Value: 'unicode' object has no attribute 'get'
答案 0 :(得分:3)
job_apply
是一个观点。视图的合同是它接受请求并返回响应。但是你没有回复一个回复:你只是返回一条路径,这是reverse
的结果。
您应该使用redirect
,因为这是一个快捷方式,可以创建一个重定向到指定网址的响应。
return redirect('jobs:find')