本文整理汇总了Python中models.Vote.do_vote方法的典型用法代码示例。如果您正苦于以下问题:Python Vote.do_vote方法的具体用法?Python Vote.do_vote怎么用?Python Vote.do_vote使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类models.Vote
的用法示例。
在下文中一共展示了Vote.do_vote方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: do_vote
# 需要导入模块: from models import Vote [as 别名]
# 或者: from models.Vote import do_vote [as 别名]
def do_vote(querier, kind, instance_id, vote=1):
"""
Realiza un voto a un comentarion
:param instance_id: ID del objeto a comentar
:type instance_id: :class:`long`
:param vote: valoracion del voto
:type vote: :class:`integer`
"""
if not kind in ['Event', 'List', 'Comment']:
return None
vote = int(vote)
if vote > 1 or vote < -1:
return False
from geoalert.models import Event
from geolist.models import List
from geovote.models import Comment
try:
obj = eval(kind).objects.get_by_id(instance_id)
except:
return None
if obj is None:
return None
if obj.__class__.user.get_value_for_datastore(obj) != querier.key():
if hasattr(obj, '_vis'):
if obj._is_private():
return None
elif obj._is_shared() and not obj.user_invited(querier):
return None
else:
return None
else: # no se puede votar lo de uno mismo
return None
vote = Vote.do_vote(user=querier, instance=obj, count=vote)
return {'vote': vote, 'votes': _get_vote(obj.key())}