在数据库中保存申请人模型失败了,为什么?

时间:2017-03-19 19:36:26

标签: python django django-models

我正在构建一个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'

1 个答案:

答案 0 :(得分:3)

job_apply是一个观点。视图的合同是它接受请求并返回响应。但是你没有回复一个回复:你只是返回一条路径,这是reverse的结果。

您应该使用redirect,因为这是一个快捷方式,可以创建一个重定向到指定网址的响应。

return redirect('jobs:find')