首页 > 解决方案 > 使用 django 模板在我的 html 中可视化 django-table2

问题描述

视图.py

from django.shortcuts import render
from .models import Asset
import django_tables2 as tables



class AssetTable(tables.Table):
    class Meta :
        model = Asset

def asset_list(request):
    table = AssetTable(Asset.objects.all())
    
    return render (request, 'dashboard.html', {"table": table})

模型.py


class Asset(models.Model):
    type = models.ForeignKey(AssetType, on_delete=models.CASCADE)
    lc_phase = models.ForeignKey("Asset_Life_Cycle.LifeCyclePhase", on_delete=models.CASCADE)
    name = models.CharField(max_length=30)
    # BaseSpatialField.srid()
    geom = models.GeometryField()
    elevation = models.IntegerField(null=True, blank=True)
    photo = models.ImageField(blank=True, null=True, upload_to='asset_photo/')
    comissioning_date = models.DateField(null=True, blank=True)
    decommission_date = models.DateField(null=True, blank=True)

    active_choices = (('Yes', "Active"), ('No', "Inactive"),
                      ('Maintenance', "Maintenance"))
    active = models.CharField(max_length=11,
                              choices=active_choices, null=True, blank=True)

    description = models.CharField(max_length=256, null=True, blank=True)

    markersize= models.CharField(max_length=7, null=True, blank=True)
    markercolor = models.CharField(max_length=7, null=True, blank=True)
    markersymbol = models.CharField(max_length=15, null=True, blank=True) 


    def __str__(self, *args, **kwargs):
        return "{}, Type: {}".format(self.name, self.type.name)

仪表板.html

{% load django_tables2 %}

{% load render_table from django_tables2 %}

 <div>
  
    {% if table %}
      {% render_table table %}
    {% endif %}
 </div>

在仪表板页面中看不到我的表格。我只尝试了 {% render_table table %} 但给了我 Expected table 或 queryset,而不是 str 错误。我使用模板错了吗?我可以单独在其他 html 文件中看到我的表格

标签: django-templatesdjango-tables2

解决方案


推荐阅读