我有一个用于编辑模型对象的编辑视图。我希望用我生成的密码保护密码,并将其放入我的模型中。 我不想使用django用户
让我说我有这样的事情:
models.py
class Job(models.Model):
......
job_uuid = models.CharField("UUID", max_length=36, default=make_uuid)
password = models.CharField("password", max_length=36)
views.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中设置的一个密码
任何简单的包装或方式吗?
答案 0 :(得分:0)
您可以编写一个装饰器来检查edit_job
视图是否需要密码访问。
然后装饰者可以使用会话/ cookie中的密码来验证访问权限。 如果密码不匹配或不存在,您可以重定向到不同的视图以显示密码表单,并将其存储在会话中。
希望这有帮助。