jqgrid的django包装器
djqgrid的Python项目详细描述
djqgrid是jqgrid的django包装器。
djqgrid允许您以django熟悉的方式定义网格,同时为您处理大多数普通的python javascript桥。
您可以在ReadTheDocs找到这些文档。
快速示例
将djqgrid添加到项目
使用pip install djqgrid
安装将djqgrid添加到INSTALLED_APPS中。
引用jqGrid和jQueryUIjavascript和css文件
在{% static "js/djqgrid_utils.js" %}
引用脚本将djqgridurl添加到urls.py:
urlpatterns += patterns('', url(r^'grid_json/', include (djqgrid.urls))
定义您的模型
class MyModel(models.Model): name = models.CharField(max_length=40) desc = models.CharField(max_length=100) url = models.URLField() height = models.IntField()
定义网格
class MyGrid(Grid): model = MyModel name = TextColumn(title='Name', model_path='name') height = TextColumn(title='Height', model_path='height', align='right') desc = LinkColumn(title='Description', model_path='desc', url_builder=lambda m: m.url)
这里有一个与MyModelobjects关联的网格-每个网格行代表一个对象。网格有三列:
- name-包含model.name 的基本列
- 高度-包含model.height,但右对齐
- 描述-包含链接-其文本为model.desc,URL为model.url
需要注意的一点是align='right'-这个属性直接传递给列的colmodel中的jqgrid。任何属性都可以通过这种方式传递给jqgrid。例如,TextColumn(title=...,model_path=..., editable=true)创建可编辑列。
将网格添加到视图和模板
视图:
define myview(request): grid = MyGrid() return render(request, 'my_template.html', { grid: grid })
模板:
{% load djqgrid %} <div id="grid-div"> {% jqgrid grid %} </div>
现在运行视图。您应该会看到一个非常好的网格,它支持分页和排序。