0

我有一个用于编辑模型对象的编辑视图。我想用我生成并放入模型的密码对其进行密码保护。我不想使用 django 用户

假设我有这样的事情:

模型.py

class Job(models.Model):
    ......
    job_uuid = models.CharField("UUID", max_length=36, default=make_uuid)
    password = models.CharField("password", max_length=36)

视图.py

def edit_job(request, job_uuid):
    job = get_object_or_404(Job, job_uuid=job_uuid)
    job_form = EditJobForm(instance=job)
    c = {'job_form': job_form,
    }

    c.update(csrf(request))
    return render_to_response('jobs/edit_job.html', c, context_instance=RequestContext(request))

我想用对象的密码保护这个 URL。我发现这个应用django-password-required但是这个应用使用你在 settings.py 中设置的一个密码

有什么简单的包装或方法可以做到这一点?

4

1 回答 1

0

您可以编写一个装饰器来检查edit_job视图是否需要密码访问。

然后装饰器可以使用 session/cookies 中的密码来验证访问。如果密码不匹配或不存在,您可以重定向到不同的视图以显示密码表单,并将其存储在会话中。

希望这可以帮助。

于 2013-01-24T13:26:20.440 回答