限制Django中的用户注册

Django(72)

然后我修改了项目的网址.py要覆盖django authopenid的注册页:你知道吗

<分区班级="highlight">
注册账号'views.restrict_signup'),r'account /'包括'django_authopenid.urls')),

如前所述,我不想破坏django authopenid的内部结构,因为这只是一个临时问题的快速解决方案,而不是一段永远存在的完整代码。你知道吗

接下来我需要写下restrict_signup.看法:你知道吗

<分区班级="highlight">
django_authopenid.views.进口报名django.shortcuts.进口呈现\u到\u响应楷模进口appInvite.

defrestrict_signup.请求):“如果要发布,请直接传递给注册。”如果请求方法=='发布'返回报名请求

extra={}if请求GET有u键";pw";):pw=请求获取[';pw';]ai=AppInvite.对象.过滤器密码=pwclass=“p”>)iflenai!=0ai=ai[0ifai.当前的<;ai.maxai.当前.当前+1class=“n”>ai保存()返回注册请求其他class=“s”>';错误';=";注册码';%s';已过期;%pwelseextra[&39;error&&39;=";&39;%s&39;isn&&39;t一个有效的注册码。%pwreturnrender to \u response&quo;restrict_signup.html";额外的

它请求收到GET请求,然后强制用户使用注册代码进行身份验证,但如果它收到POST请求,则它将其代理转发到Django_AuthoPenID报名查看。你知道吗

restrict_signup.查看有几个小缺陷:你知道吗

  1. 它计算它呈现空白注册表单的次数,而不是创建的实际用户数。你知道吗

  2. 可以通过手动发送邮政请求而不是GET请求来避难。你知道吗

就我目的而言,如果让人们更少的人,或者如果有几个人绕过系统潜入,那么我并没有过于担心,所以这对我来说仍然是一个足够的解决方案。你知道吗

最后一块拼图是限制_注册.html模板。你知道吗

<分区班级="highlight">
{%延伸"基本.html"%}{%堵塞内容%}<分区班级=“主要的”>

你知道吗请输入注册码{%如果错误%}

{{错误}}你知道吗

{%结束%}<形式行动=方法=“获取”><标签为了=“pw”>注册代码:<输入名称=“pw”><输入类型=“提交”价值=“检查代码”>{%终止%}

如果可以将这种模式抽象(并扩展一下)将其添加到可插拔的应用程序中,我确信它会很有用,但这需要更多地考虑如何构建它。我对此的看法是:你知道吗

  1. 支持任意注册代码,可选地具有有限数量的用途。你知道吗

  2. 支持限制每个时间段(100 /天等)的注册数量。你知道吗

  3. 在中有参数settings.py.这为发送了正确注册代码的用户指定了注册表的视图。你知道吗

  4. 是的。。差不多了。你知道吗