无法让数据表与 Django 生成的表一起工作
can't get datatables work with a django generated table
我正在尝试在django应用程序中使用数据表。这是我的代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> My web application </title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" title="currentStyle">
@import "./DataTables-1.9.0/media/css/demo_table.css";
</style>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="./DataTables-1.9.0/media/js/jquery.dataTables.js"></script>
<script>
$(document).ready( function () {
$('#table_id').dataTable();
} );
</script>
</head>
<body>
{% if success %}
<form action="." method="POST">
{{ my_form.as_p }}
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>
<br>
<table id="table_id" class="display">
<thead> <tr>
{%for x in htl%}
<th> {{x}} </th>
{% endfor%}
</tr>
</thead>
<tbody>
{% for x in mytable %}
<tr>
{% for y in x %}
<td> {{y}} </td>
{%endfor %}
</tr>
{% endfor%}
</tbody>
</table>
{% else %}
<form action="." method="POST">
{{ my_form.as_p }}
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>
{% endif %}
</body>
</html>
我想传递一个 python 列表,其中每一行作为列表中的一个项目,并在模板中格式化表.html从代码中可以看出。我根本无法让数据表工作。有什么想法吗?谢谢
我认为你的HTML可能很糟糕:
<thead> <tr>
{%for x in htl%}
<th> {{x}} </th>
{% endfor%}
</th>
</thead>
第二</th>
应该</tr>
另外,您可能想查看以下内容:https://github.com/eire1130/Django_datatables
这是我编写的一个包装器,用于简化将数据表嵌入到 django 模板中的过程。
另外,我注意到您正在使用{%块%},但是我没有看到您要扩展的内容?
编辑以配置介质和静态文件:
在 settings.py 的最顶部添加以下行:
import os
ROOT_PATH = os.path.dirname(__file__)
(你应该在所有项目中都这样做,这样做会为你以后省去很多麻烦)
此外,在您的 settings.py 中,您应该下降到文件的中途并查看四行(实际上是两行,但我们也会同时进行静态)
MEDIA_ROOT = os.path.join(ROOT_PATH, 'media/')
MEDIA_URL = 'http://127.0.0.1:8000/media/'
以上内容将在像 myproject/media 这样的控制器中设置您的媒体文件,您的应用程序位于 myproject/myapp
STATIC_ROOT = os.path.join(ROOT_PATH, 'static/')
STATIC_URL = 'http://127.0.0.1:8000/static/'
以上内容将在像 myproject/static 这样的目录中设置静态文件,您的应用程序位于 myproject/myapp。
在 settings.py 所在的同一目录中,创建一个名为"urls.py"的文件(如果您的旧 urls.py 已经在这里),将其移动到您的应用程序文件夹,因此您的旧 urls.py 应该位于myproject/myapp/urls.py。
您的新 urls.py 应位于myproject/urls.py
在这个新的完全空白的 python 文件中,添加以下行:
from django.conf.urls.defaults import patterns, include, url
from django.conf import settings
urlpatterns = patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }),
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT }),
(r'^', include('myproject.myapp.urls')),
)
请注意最底部的"包括"。显然,您需要更改此设置以反映您的项目和应用程序名称。
设置完成后,您需要创建一个驻留在 myproject/media 中的媒体文件夹。你应该对/static 做同样的事情。
在此目录中,您应该放置您关心的任何媒体文件。例如,我有一个名为"插件"的文件夹,其中有数据表。路径如下所示:myproject/media/plugins/datables,然后是所有的数据表文件。
现在,在模板中,将链接指向目录:
'/media/plugins/datatables/media/js/jquery.dataTables.min.js'
请注意,开头没有".",也没有@include。只是网址。
这应该为您设置数据表,并允许同时提供媒体。在生产环境中,您不会完全这样做,但对于原型设计和学习,这将正常工作
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- document.title函数可以't设置它与php一起工作
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 非常简单的js测试;Don’不要和Minko一起工作
- 无法使我的文本参数与我的查询一起工作
- 为什么Angularjs验证don't与输入[type=“number”]一起工作
- 无法使vash 0.8.0与express 4.12.3一起工作
- 如何使Angular JS控制器与指令一起工作
- 无法使autocompletion与bootstrap和php代码点火器一起工作
- 注入的元素和jQuery脚本.如何让他们一起工作
- 两个独立工作的javascript函数,但不能一起工作
- 角度和砖石一起工作
- Node http-proxy-middleware 不能与本地服务器一起工作
- jQuery脚本不想一起工作
- page.js使examples/hash与hashbang:true一起工作
- javascript使jquery倒计时与UTC时间一起工作
- jQuery.not()选择器无法与类一起工作
- Rails3-可排序列表不能与wysihtml5一起工作
- 替换匹配函数给出了未定义的错误,但它与替换一起工作
- 按钮上的数据加载消息无法与ajax调用一起工作