我有一个django应用程序,用户应该要求经理加入某个组 .
我需要能够通过批准特定用户的URL向经理发送批准邮件
加入一个特定的小组 .
如何构建此类URL以及如何在单击该URL后识别用户和组?
也许你有一些我可以阅读的链接?
谢谢,阿尔沙夫斯基亚历山大 .
对于批准电子邮件,您可以发送用户的ID(处于干净状态(id = 1或散列(如果您需要时间来添加一些salt,如id = 356a192b7913b04c54574d18c28d46e6395428ab)到组管理器 .
然后,当群组管理员点击链接时,他会被重定向到他的“仪表板”,并且用户已预先选择进行审批(您可能希望列出该页面中用户的所有批准请求(尚未批准))
然后,组管理员可以允许或拒绝用户访问(对于单个组或多个组)
以下是如何为请求创建唯一键
from random import random from django.utils.hashcompat import sha_constructor invite_salt = sha_constructor(str(random())).hexdigest()[:5] invite_key = sha_constructor("|".join([admin_salt, email, url])).hexdigest()
然后将其存储在模型的字段中,您可以将其命名为ApprovalRequest . 然后你可以 Build 一个像这样的视图
def approve(request, admin_key): approval_request = get_object_or_404(ApprovalRequest, invite_key=admin_key)
ApprovalRequest应该包含一个ForeignKey给发起它的用户和他们想要加入的组,这样你就可以在此时适当地处理它,之后将批准请求标记为完成 .
要获取此批准视图的URL,您可以使用reverse('approve',admin_key),假设您在urls.py中按如下方式映射视图
url(r"^approve/([^/]+)/", 'example.views.approve', name='approve')
2 回答
对于批准电子邮件,您可以发送用户的ID(处于干净状态(id = 1或散列(如果您需要时间来添加一些salt,如id = 356a192b7913b04c54574d18c28d46e6395428ab)到组管理器 .
然后,当群组管理员点击链接时,他会被重定向到他的“仪表板”,并且用户已预先选择进行审批(您可能希望列出该页面中用户的所有批准请求(尚未批准))
然后,组管理员可以允许或拒绝用户访问(对于单个组或多个组)
以下是如何为请求创建唯一键
然后将其存储在模型的字段中,您可以将其命名为ApprovalRequest . 然后你可以 Build 一个像这样的视图
ApprovalRequest应该包含一个ForeignKey给发起它的用户和他们想要加入的组,这样你就可以在此时适当地处理它,之后将批准请求标记为完成 .
要获取此批准视图的URL,您可以使用reverse('approve',admin_key),假设您在urls.py中按如下方式映射视图