【问题标题】:django and jquery datatablesdjango 和 jquery 数据表
【发布时间】:2017-02-21 15:39:59
【问题描述】:

我正在使用 django 构建一个可以通过网站查看的数据库。

在深入我的项目之前,我构建了 django 应用程序,并在我的模型中添加了一个表,其中只有一行数据。现在我正在尝试使用 jquery 数据表来可视化该表。但是,没有显示 jquery 数据表格式。我尝试了所有可能的解决方案,但还没有解决。

模型.py

from django.db import models

class Variant(models.Model):
    type = models.CharField(max_length = 20)
    protein_id = models.CharField(max_length = 20)
    gene_symbol = models.CharField(max_length = 20)
    chromosome = models.CharField(max_length = 5)
    position = models.CharField(max_length = 20)
    variation = models.CharField(max_length = 20)
    consequence = models.CharField(max_length = 40)
    rs = models.CharField(max_length = 20)
    maf = models.CharField(max_length = 20)
    phenotype = models.CharField(max_length = 20)
    source = models.CharField(max_length = 40)

Views.py

from django.shortcuts import render
from view_data.models import *

def variants(request):
    queryset = Variant.objects.all()
    return render(request, "variants.html", {"allvars": queryset})

网址.py

from django.conf.urls import url
from django.contrib import admin
from view_data import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^variants/', views.variants),
] 

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

variants.html

{% load static %}

<html>
<head>
    <script src="{{ STATIC_URL }} js/jquery.js"></script>
    <script src="{{ STATIC_URL }} jquery.min.js"></script>
    <script src="{{ STATIC_URL }} jquery.dataTables.min.js"></script>
    <link rel="stylesheet" href="{{ STATIC_URL }} jquery.dataTables.min.css">
    <script>
        $(document).ready(function(){
            $("table_id").dataTable();
             });
    </script>
</head>

<body>

<div style="width:90%; margin:0 auto;">    
<table id="table_id" class="display" cellspacing="0" width="100%">
<thead>
<tr>
    <th>Variant Type</th>
    <th>Protein Id</th>
    <th>Gene Symbol</th>
    <th>Chromosome</th>
    <th>Position</th>
    <th>Variation</th>
    <th>Consequence</th>
    <th>RS Id</th>
    <th>GMAF</th>
    <th>Phenotype</th>
    <th>Source</th>
</tr>
</thead>

<tbody>
{% for v in allvars %}
<tr>
    <td>{{ v.type }}</td>
    <td>{{ v.protein_id }}</td>
    <td>{{ v.gene_symbol }}</td>
    <td>{{ v.chromosome }}</td>
    <td>{{ v.position }}</td>
    <td>{{ v.variation }}</td>
    <td>{{ v.consequence }}</td>
    <td>{{ v.rs }}</td>
    <td>{{ v.maf }}</td>
    <td>{{ v.phenotype }}</td>
    <td>{{ v.source }}</td>
</tr>
{% endfor %}
</tbody>
</table>

</body>
</html>

包含 js 和 css 文件的静态文件夹与我的 django 应用程序 (view_data) 处于同一级别。在 settings.py 文件中,我将“view_data”和“jquery”添加到 INSTALLED_APPS。我还将我的静态文件指定为:

STATIC_URL = '/static/'
STATIC_ROOT = (os.path.join(BASE_DIR, 'static'))
STATIC_DIRS = (os.path.join(BASE_DIR, 'static'))

现在,当我运行服务器时,我在终端中输入了以下几行:

[21/Feb/2017 15:33:54] "GET /variants/ HTTP/1.1" 200 1079
[21/Feb/2017 15:33:54] "GET /variants/jquery.dataTables.min.js HTTP/1.1" 200 1079
[21/Feb/2017 15:33:54] "GET /variants/jquery.min.js HTTP/1.1" 200 1079
[21/Feb/2017 15:33:54] "GET /variants/jquery.dataTables.min.css HTTP/1.1" 200 1079
[21/Feb/2017 15:33:54] "GET /variants/js/jquery.js HTTP/1.1" 200 1079

但是当我检查网站链接时,它显示的是按行排列的数据,但根本没有表格格式。请你帮我找出我做错了什么以及如何解决这个问题。

提前非常感谢您。 EMH

【问题讨论】:

  • 您可能还想发布渲染的标记。
  • 很抱歉,我没明白。请你解释一下你的意思。谢谢。

标签: jquery python django datatable


【解决方案1】:

你似乎忘记了$("table_id").dataTable();中的#

应该是这样的:

$("#table_id").dataTable();<br>

【讨论】:

  • 我试过了还是不显示,谢谢指正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
相关资源
最近更新 更多