Django-ListView-template for循环不显示任何项

Django-ListView-template for循环不显示任何项,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,这就是我想要实现的目标: well\u list.html <thead> <tr> {% for item in well_info %} <th>item</th> {% endfor %} </tr> </thead> 视图.py from django.conf.urls import url, include from django.contrib import admin fr

这就是我想要实现的目标:

well\u list.html

<thead>
  <tr>
    {% for item in well_info %}
    <th>item</th>
    {% endfor %}
  </tr>
</thead>
视图.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from django.urls import path, re_path, include
from eric_base import views

urlpatterns = [
    path('contextual/', include('eric_base.urls')),
    path('well_list/', views.well_list)
]
from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView, CreateView, UpdateView, DeleteView

from . import models

class WellInfoListView(ListView):
    template_name = 'well_list.html'
    context_object_name = 'well_info'
    model = models.WellInfo
from django.db import models
from django.urls import reverse


# Create your models here.
class WellInfo(models.Model):
    api = models.CharField(max_length=100, primary_key=True)
    name = models.CharField(max_length=100)
    region_location = models.CharField(max_length=100)
    spud_date = models.CharField(max_length=100)
    well_bore = models.CharField(max_length=100)
    rig_name = models.CharField(max_length=100)
    status = models.CharField(max_length=100)

    def get_absolute_url(self):
        return reverse("")
型号.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from django.urls import path, re_path, include
from eric_base import views

urlpatterns = [
    path('contextual/', include('eric_base.urls')),
    path('well_list/', views.well_list)
]
from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView, CreateView, UpdateView, DeleteView

from . import models

class WellInfoListView(ListView):
    template_name = 'well_list.html'
    context_object_name = 'well_info'
    model = models.WellInfo
from django.db import models
from django.urls import reverse


# Create your models here.
class WellInfo(models.Model):
    api = models.CharField(max_length=100, primary_key=True)
    name = models.CharField(max_length=100)
    region_location = models.CharField(max_length=100)
    spud_date = models.CharField(max_length=100)
    well_bore = models.CharField(max_length=100)
    rig_name = models.CharField(max_length=100)
    status = models.CharField(max_length=100)

    def get_absolute_url(self):
        return reverse("")
由于我在
views.py
中正确定义了
context\u object\u name='well\u info'
,并且在html中使用了
{%for item in well\u info%}
,所以我希望至少可以从模型属性中获得一些东西。但是当我运行这段代码时,我什么也得不到。标题行将消失,如下图所示:

我希望表头具有models.py中定义的属性名称,但显然它没有从中获取任何内容。为什么它不从
models.py
中获取任何属性,如何仅将属性名称显示为列标题

因此,我希望表标题为:

Api | Name | Region Location | Spud Date | Well Bore | Rig Name | Status

没有每个键的值

您可以尝试使用Model\u meta API。在视图中,您可以将字段放入如下列表:

from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView, CreateView, UpdateView, DeleteView

from .models import WellInfo

class WellInfoListView(ListView):
    template_name = 'well_list.html'
    context_object_name = 'well_info'
    model = WellInfo

    def get_context_data(self, **kwargs):
        ctx = super(WellInfoListView, self).get_context_data(**kwargs)
        ctx['fields'] = [field.name for field in WellInfo._meta.get_fields()]
        return ctx
然后在模板中,您可以

<thead>
    {% for field in fields %}
    <th>{{ field }}</th>
    {% endfor %}
</thead>

{字段%中的字段为%1}
{{field}}
{%endfor%}

您能否发布
well\u list.html
的完整源代码(或至少所有相关部分)?您发布的代码段没有足够的信息。