简单的django应用程序,方便“喜欢”任何内容类型。
django-likeable的Python项目详细描述
添加“喜欢”功能,目的是便于扩展 (见django-nonrel) 当 促进喜欢。允许喜欢在 contenttypes框架。
请注意,此应用程序尚未按比例测试,但将在 不久的将来。同时,它只是在模型中添加了“喜欢”功能。
快速安装
- 将django-likeable应用程序添加到python路径。
- 将likeable添加到项目设置中的INSTALLED_APPS列表中。
- 创建您喜欢的模型:
from likeable import Likeable from django.contrib.auth.models import User class BlogEntry(Likeable): author = models.ForeignKey(User) content = models.TextField() created = models.DateTimeField(auto_now_add=True) class BlogEntryComment(Likeable): entry = models.ForeignKey(BlogEntry) author = models.ForeignKey(User) content = models.TextField() created = models.DateTimeField(auto_now_add=True)
手动喜欢内容
您可以使用提供的Likeable.like函数自动喜欢 对象,例如:
from likeable import Like from models import BlogEntry, BlogEntryComment from django.contrib.auth.models import User ... # harry posts a blog entry harry = User.objects.create(username='harry') blog_entry = BlogEntry.objects.create(author=harry, content="This is my first post.") ... # sally likes the blog entry sally = User.objects.create(username='sally') blog_entry.like(sally)
通过提供的视图喜欢内容
确保项目的urls.py文件如下:
from django.conf.urls.defaults import patterns, include, url urlpatterns = patterns('', # ... # add django-likeable's urls url(r'^like/', include('likeable.urls')), # ... )
启用的URL
like/<content_type_id>/<object_id>
自动检测请求是否通过 一个普通的get请求或一个ajax请求,并按照以下两种方式进行处理 意见。
like/noajax/<content_type_id>/<object_id>
试图喜欢 内容类型id是<content_type_id>,主键是<object_id>(两者都是 正整数)。此函数自动尝试将用户重定向到 在喜欢给定对象后引用url。如果没有与给定条件匹配的对象 找到时,将生成一个http 404错误。
like/ajax/<content_type_id>/<object_id>
试图喜欢 内容类型id是<content_type_id>,主键是<object_id>(两者都是 正整数)。此函数返回格式为 {'success': true}成功时。如果没有与给定条件匹配的对象 找到时,将生成一个http 404错误。
包括其他电池
likeable.views.get_like_view_params(obj)
obj必须是使用contenttypes框架注册的任何对象。 成功时,此快捷函数将返回一个元组,该元组首先包含 内容类型id主键以及对象的主键,它可以 然后简单地传递给一个django-likeable视图。