I 开发者_StackOverflow社区am using Django and my website has no user profiles so all are anonymous. I want to implement a 'like' system. How do I restrict a user to like only once. Thanks.
If you don't have any way of identifying your users then your best bet is to store this info in a browser cookie or HTML5 local storage. (I don't advise using flash cookies since there is a long debate about them and they are harder to implement)
You can't 100% restrict multiple votes, but you can make it very difficult for a regular user, by using:
- a cookie
- a DB entry with the voter's IP
Facebook seems to track uniqueness of likes when its tied to a facebook app though the XFBML script. Regardless of whether I'm logged in or logged out of facebook, the like button seems to recognize that I've already voted.
- Creating a facebook app can currently be done here: https://developers.facebook.com/apps
- An interesting feature of facebooks apps is facebook
insights
, which can be found here: http://www.facebook.com/insights/ - Supporting documentation for facebook insights can be found here: http://developers.facebook.com/docs/insights/
While still in its infancy, there is a project called django-like-button
which provides a wrapper for facebooks XFBML like button. If you're using pip and virtualenv, you can pip install django-like-button
and follow the readme.rst installation instructions. The project can be found on github.
精彩评论