Я использую django для создания базы данных, которая может быть просмотрена через веб-сайт.django и jquery datatables
Прежде чем углубиться в мой проект, я построил приложение django и добавил таблицу в свои модели только с одной строкой данных. Теперь я пытаюсь визуализировать эту таблицу с использованием jQuery datatables. Однако формат jquery datatables не отображается. Я пробовал все возможные решения, которые я нашел, но пока ничего не получается.
Models.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})
Urls.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
Но когда я проверяю сайт ссылку, он показывает мне данные, упорядоченные в строках, но без форматирования таблицы вообще. Можете ли вы помочь мне определить, что я сделал неправильно, и как я могу исправить эту проблему.
Большое вам спасибо. ЭМГ
Вы можете разместить обработанную разметку, а также. – khalid13
Извините, но я этого не понял. Пожалуйста, объясните, что вы имеете в виду. Благодарю. – EMH