django的javascript模型字段选择处理。
django-js-choices的Python项目详细描述
概述
django js choices是一个小型django应用程序,用于处理 model field choices在javascript中很简单。
例如,给定模型…
# models.py:classStudent(models.Model):FRESHMAN='FR'SOPHOMORE='SO'JUNIOR='JR'SENIOR='SR'YEAR_IN_SCHOOL_CHOICES=((FRESHMAN,'Freshman'),(SOPHOMORE,'Sophomore'),(JUNIOR,'Junior'),(SENIOR,'Senior'),)year_in_school=models.CharField(max_length=2,choices=YEAR_IN_SCHOOL_CHOICES,default=FRESHMAN,)
…这些选项可以在javascript中访问。
Choices.pairs("year_in_school");
结果:
[{value:"FR",label:"Freshman"},{value:"SO",label:"Sophomore"},{value:"JR",label:"Junior"},{value:"SR",label:"Senior"}]
也可以访问显示值。
Choices.display("year_in_school","FR")Choices.display("year_in_school",{"year_in_school":"FR"})
在这两种情况下,结果都是
"Freshman"
要求
- Python(2.7+,3.5+)
- Django(1.5+)
安装
使用pip…
安装pip install django-js-choices
…或者从github克隆项目。
git clone https://github.com/lorinkoz/django-js-choices.git
将'django_js_choices'添加到INSTALLED_APPS设置中。
INSTALLED_APPS=(...'django_js_choices',)
用作静态文件
首先通过
python manage.py collectstatic_js_choices如果您添加应用程序、模型或更改某些现有选项, 您可以通过再次运行该命令来更新choices.js文件。
选项文件总是以区域设置前缀创建的:choices-en-us.js 但您可以将任何语言环境传递给命令…
python manage.py collectstatic_js_choices --locale es
…生成的文件将是choices-es.js
在此之后,将文件添加到模板中。
<scriptsrc="{% static 'django_js_choices/js/choices-es.js' %}"></script>
与视图一起使用
包括非缓存视图…
fromdjango_js_choices.viewsimportchoices_jsurlpatterns=[url(r'^jschoices/$',choices_js,name='js_choices'),]
…或使用缓存保存一些bandwith。
fromdjango_js_choices.viewsimportchoices_jsurlpatterns=[url(r'^jschoices/$',cache_page(3600)(choices_js),name='js_choices'),]
在模板中包含javascript。
<scriptsrc="{% url 'js_choices' %}"type="text/javascript"></script>
用作模板标记
如果要内联生成javascript代码,请使用template标记。
{% load js_choices %} <scripttype="text/javascript"charset="utf-8">{%js_choices_inline%}</script>
使用javascript中的选项
对于每个有选择的模型字段,它们将通过以下方式提供 名字。
Choices.pairs("<app_label>_<model_name>_<field_name>")Choices.pairs("<model_name>_<field_name>")Choices.pairs("<field_name>")
如果这些名称与其他模型字段冲突, 冲突的名称将无法访问以防止歧义。
选项
可选地,您可以覆盖使用的默认javascript变量'choices' 通过django设置访问选项。
JS_CHOICES_JS_VAR_NAME='Choices'
或者,您可以更改全局对象的名称javascript 用于访问选项的变量附加到。默认值是this。
JS_CHOICES_JS_GLOBAL_OBJECT_NAME='window'
或者,可以禁用生成的javascript文件的切碎。 通过django设置。
JS_CHOICES_JS_MINIFY=False
默认情况下,collectStatic_js_choices写入其输出(choices en us.js) 到项目的静态根目录,但可以更改输出路径。
JS_CHOICES_OUTPUT_PATH='some/other/path'
运行测试套件
尚未提供
学分
灵感来源(从概念上讲来源) django-js-reverse