使用Django中的ListView类获取字段
我正在学习从使用Django中的ListView类获取字段,django,django-models,django-views,Django,Django Models,Django Views,我正在学习从django管理ListView类,获取数据非常简单 from django.views.generic import ListView from .models import Fleet class fleet_bbdd_view(ListView): template_name = 'data_app/fleets-bbdd.html' paginate_by = 20 model = Fleet context_object_name = 'F
django
管理ListView类
,获取数据非常简单
from django.views.generic import ListView
from .models import Fleet
class fleet_bbdd_view(ListView):
template_name = 'data_app/fleets-bbdd.html'
paginate_by = 20
model = Fleet
context_object_name = 'FleetsList'
但我找不到的是如何获取模型的字段并将它们传递到上下文对象中。是否可以使用列表视图类
执行此操作
我知道如何在普通函数中获得它,但如果可能的话,我更喜欢使用ListView类
def getData(request):
cols = [i.name for i in Fleet._meta.get_fields()]
ctx = {'Cols':cols}
return JsonResponse(ctx)
有人能帮我吗?非常感谢。正如@dirkgroten所说,您可以覆盖
get\u context\u data()
,但调用它的super。这里是一个很好的地方,可以查看您可以重写的函数及其作用:
如果您只需要在模板中使用
Fleet
对象,则通过执行context\u object\u name='FleetsList'
将它们命名为FleetsList
。这将把列表对象添加到上下文中,类似于@dirkgroten所说的,您可以覆盖get\u context\u data()
但调用它的super。这里是一个很好的地方,可以查看您可以重写的函数及其作用:
如果您只需要在模板中使用
Fleet
对象,则通过执行context\u object\u name='FleetsList'
将它们命名为FleetsList
。这会将列表对象添加到上下文中,类似于context={'FleetsList':queryset}
如果我理解正确,您正在尝试将字段名添加到上下文中。您可以像在问题中设置cols
变量那样执行此操作,但您需要重写get_context_data(),将其放入上下文中,如@dirkgroten所说
class fleet_bbdd_view(ListView):
template_name = 'data_app/fleets-bbdd.html'
paginate_by = 20
model = Fleet
context_object_name = 'FleetsList'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['cols'] = [i.name for i in Fleet._meta.get_fields()]
return context
如果我理解正确,那么您正试图将字段名放入您的上下文中。您可以像在问题中设置
cols
变量那样执行此操作,但您需要重写get_context_data(),将其放入上下文中,如@dirkgroten所说
class fleet_bbdd_view(ListView):
template_name = 'data_app/fleets-bbdd.html'
paginate_by = 20
model = Fleet
context_object_name = 'FleetsList'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['cols'] = [i.name for i in Fleet._meta.get_fields()]
return context
ListView
继承自,因此您可以重写get\u context\u data()
以向上下文添加任何您喜欢的内容。ListView
继承自,因此您可以重写get\u context\u data()
以向上下文添加任何您喜欢的内容。