一个可重复使用的django应用程序,它允许您站点的用户标记项目。每个用户的标签是分开的,这样自动建议功能就不会建议其他用户输入的标签。
django-user-tags的Python项目详细描述
正在工作。不要用这个!
允许用户向任何对象添加标记的django应用程序。每个用户的 标签被很好地分开,因此自动建议功能永远不会 建议由其他用户输入的标记(除非您愿意)。
安装
要使用此应用程序,您需要安装以下先决条件:
pip install Django pip install South
如果要安装pypi的最新稳定版本:
$ pip install django-user-tags
如果您有冒险精神并希望安装来自github的最新提交:
$ pip install -e git://github.com/bitmazk/django-user-tags.git#egg=user_tags
将user_tags添加到INSTALLED_APPS:
INSTALLED_APPS = ( ..., 'user_tags', )
不要忘记迁移数据库:
./manage.py migrate user_tags
添加jquery和jquery ui并将其标记到基本模板中,或者至少标记到 显示带有标记字段的表单的模板:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script> <script src="{{ STATIC_URL }}user_tags/js/tag-it.js" type="text/javascript" charset="utf-8"></script>
还可以将jquery ui主题和tag it主题添加到模板中:
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css"> <link href="{{ STATIC_URL }}user_tags/css/jquery.tagit.css" rel="stylesheet" type="text/css">
用法
首先,您需要修改应该能够保存标记的模型:
class YourModel(models.Model): TAG_FIELDS = { 'tags': { 'verbose_name': _('Tags'), 'help_text': _('Help text'), 'with_user': True, }, 'global_tags': { 'verbose_name': _('Global Tags'), 'with_user': False, } }
TAG_FIELDS是一本词典。字典里可以有 以下键:
- key在main dict中。这将是 数据库以及表单字段的名称。
- 详细名称。这将是表单字段的标签。如果没有提供 它将与name相同。
- help\u文本。这将是表单字段的帮助文本。
- ,用户。如果True,则被标记的项必须具有外键 给User对象或提供get_user方法。如果False我们 假设此项的标记是全局的。
接下来,您将为您的可标记模型创建一个ModelForm:
from django import forms from user_tags.forms import UserTagsFormMixin from your_app.models import YourModel class YourModelForm(UserTagsFormMixin, forms.ModelForm): class Meta: model = DummyModel
UserTagsFormMixin将为您提供魔力,并为 模型上TAG_FIELDS中的每个项目。这些字段将有一个类 tagItInput。此外,MIXIN将添加一种方法。 fieldname_tags_values到表单(对于每个标记字段),它将 返回该字段的可用标记:
<script type="text/javascript"> $(document).ready(function() { $("#id_fieldname").tagit({ allowSpaces: true ,availableTags: {{ form.fieldname_tags_values|safe }} ,caseSensitive: false }); }); </script>
这只是一组我们喜欢使用的正常设置。你当然可以 根据你的喜好调整一下。见tag-it documentation 供进一步参考。
设置
用户标记相关的名称
如果出于某种原因,您的某个型号已经有外键 ContentType相关名称为user_tags_tagged_items您可以 使用此设置更改django-user-tags使用的相关名称。
默认值:“用户标记项”
贡献
如果您想参与此项目,请执行以下步骤:
# Fork this repository # Clone your fork $ mkvirtualenv -p python2.7 django-user-tags $ pip install -r requirements.txt $ ./user_tags/tests/runtests.sh # You should get no failing tests $ git co -b feature_branch master # Implement your feature and tests $ ./user_tags/tests/runtests.sh # You should still get no failing tests # Describe your change in the CHANGELOG.txt $ git add . && git commit $ git push origin feature_branch # Send us a pull request for your feature branch
无论何时运行测试,都会在 tests/coverage/index.html。添加新功能时,请确保 你把保险范围保持在100%。
如果您正在进行需要在浏览器中测试的更改(即 css或js文件),您可能希望设置django项目,请按照 上面的安装说明,然后运行python setup.py develop。这个 只需在项目的virtualenv中放置一个到克隆叉的鸡蛋链接。
路线图
查看github上的问题跟踪程序,以了解未来的里程碑和功能。