一个简单的django应用程序来处理对象评级。
django-rating的Python项目详细描述
此包允许您使用不同类型的分级对任何对象进行分级。
示例:
假设一个用户(作为参与者)想要对上一个会话的内容和执行者进行评分。
rating_element_1=RatingElement.objects.create(element_type=RATING_ELEMENT_SESSION_CONTENT,score=5)rating_element_2=RatingElement.objects.create(element_type=RATING_ELEMENT_SESSION_PERFORMER,score=5)rating=ObjectRating.objects.create(user=my_user,user_type=USER_TYPE_PARTICIPANT,content_type=ContentType.objects.get(model="session"),object_id=Session.objects.last().id,)rating.elements.add(rating_element_1,rating_element_2)
安装
安装pip包:
pip install django-rating
如果尚未安装,请安装django-rest-framework
将rating
和rest_framework
添加到已安装的应用程序中
在urlpatterns中包含“rating.url”
fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r"",include("rating.urls")),]
将数据库迁移到板条箱评级模型
python manage.py migrate
开发
复制回购协议
git clone git@github.com:pulilab/django-rating.git
测试应用程序
测试独立应用程序:
$export database_url='your_db'您可以跳过此项,默认为'localhost'(为简单起见,请使用postgres.app)
$pip install-r requirements.txt
$python runtests.py
以开发模式运行应用程序
创建一个新的django项目并以开发模式安装包
django-admin startproject rating_demo
cd rating_demo
pip install -e ~LOCAL_PATH_TO_DJANGO_RATING
将rating
和rest_framework
添加到INSTALLED_APPS
中的settings.py
INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','rest_framework','rating']
配置演示应用程序URL
fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r"^api/",include("rating.urls")),]
SqlLite is not supported
在settings.py
:
DATABASES={'default':{'ENGINE':'django.db.backends.postgresql_psycopg2','NAME':'postgres','USER':'postgres','HOST':os.environ.get("DATABASE_URL",'localhost'),'PORT':5432,}}
配置
在“设置”中配置以下值:
- rating_valid_user_type:定义接受的用户类型
- rating_valid_element_type:定义可接受的rating元素类型
- 评分:定义评分的最低分数
例如
fromdjango.utils.translationimportugettext_lazyas_USER_TYPE_SESSION_HOST='H'USER_TYPE_SESSION_PARTICIPANT='P'ELEMENT_TYPE_SESSION_CONTENT='S'ELEMENT_TYPE_COMMENT='C'RATING_VALID_USER_TYPES=((USER_TYPE_SESSION_HOST,_('HOST')),(USER_TYPE_SESSION_PARTICIPANT,_('PARTICIPANT')))RATING_VALID_ELEMENT_TYPES=((ELEMENT_TYPE_SESSION_CONTENT,_('SESSION_CONTENT')),(ELEMENT_TYPE_COMMENT,_('COMMENT')))RATING_MIN_SCORE=1RATING_MAX_SCORE=5
迁移数据库、创建超级用户并运行演示应用程序:
python manage.py migrate python manage.py createsuperuser python manage.py runserver
在http://localhost:8000/admin
打开浏览器