Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Django中的ListView类获取字段_Django_Django Models_Django Views - Fatal编程技术网

使用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()
以向上下文添加任何您喜欢的内容。