我正在写一个django应用程序,用于跟踪哪些电子邮件地址可以将内容发布到用户的帐户。用户可以按照他们的喜好将地址列入白名单和黑名单。python/django中的电子邮件白名单/黑名单
任何未指定的地址都可以根据消息进行处理,或者只是默认为白名单或黑名单(又是用户指定的)。
这里是我写的django模型...你认为是一个好办法吗?还是应该为每个用户的个人资料模型添加白名单和黑名单字段?
class knownEmail(models.Model):
# The user who set this address' permission, NOT
# the user who the address belongs to...
relatedUser = models.ManyToManyField(User)
email = models.EmailField()
class whiteList(knownEmail):
pass
class blackList(knownEmail):
pass
然后,我可以做这样的事情:
def checkPermission(user, emailAddress):
"Check if 'emailAddress' is allowed to post content to 'user's profile"
if whiteList.objects.filter(relatedUser=user, email=emailAddress):
return True
elif blackList.objects.filter(relatedUser=user, email=emailAddress):
return False
else:
return None
有没有更好的办法?
谢谢,我认为你的第二类方法应该是is_on_blacklist尽管;) – Jiaaro 2009-04-14 12:41:15