Django-ListView-template for循环不显示任何项
这就是我想要实现的目标: well\u list.htmlDjango-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
<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
的完整源代码(或至少所有相关部分)?您发布的代码段没有足够的信息。