Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Python Django无法显示带有动态字段的模型数据_Python_Django_Model_Html Table_Field - Fatal编程技术网

Python Django无法显示带有动态字段的模型数据

Python Django无法显示带有动态字段的模型数据,python,django,model,html-table,field,Python,Django,Model,Html Table,Field,我的目录应用程序有一个预定义的各种不同的模型,每个模型都需要选择并返回相应的对象。因此,由于我的模型很多,用户需要分别选择每个模型,因此我制作了一个动态表单,传递模型表名m_tb_name,该表单由my views.py检索,并返回适当的模型,如下所示: *views.py* def dlist(request): #get the model table name from the form m_tb_name= request.POST['model_classes_field']

我的目录应用程序有一个预定义的各种不同的模型,每个模型都需要选择并返回相应的对象。因此,由于我的模型很多,用户需要分别选择每个模型,因此我制作了一个动态表单,传递模型表名
m_tb_name
,该表单由my views.py检索,并返回适当的模型,如下所示:

*views.py*
def dlist(request):

#get the model table name from the form
m_tb_name= request.POST['model_classes_field']
    #retrieve the model using the table name
model_class = get_model('Directories', m_tb_name)
    # return all model data
model_list = model_class.objects.all() 
# how the data will be handled in list.html template
    #get fields and their names
fields = get_model_fields(model_class)
field_names = model_class._meta.get_all_field_names()
print 'You searched for: %r' % m_tb_name
return render(request, 'Directories/list.html', {'m_tb_name':m_tb_name, 'model_class':model_class, 'model_list':model_list, 'fields':fields, 'field_names':field_names})
自从我初始化了模型、它的字段和对象.all()之后,我尝试用模型的数据填充一个表。但是,在我的模板中,我有以下内容:

*list.html*
<table>

    <tr>
    {% for f in fields %}
        <th>{{ f.verbose_name }}</th>           
    {% endfor %}
    </tr>

    {% for f in fields %}
        {% for mod in model_list %}
    <tr>
        <td> {{mod.f }}</td>
    </tr>
        {% endfor %}
    {% endfor %}
</table>
*list.html*
{%f在字段%}
{{f.verbose_name}
{%endfor%}
{%f在字段%}
{model_list%中mod的%
{{mod.f}}
{%endfor%}
{%endfor%}
虽然我希望mod.f中有一些数据(特别是我希望模型中每个特定字段的数据),但输出是空的,没有返回任何内容。任何关于为什么会发生这种情况的想法都会有所帮助


其想法是做一些类似anwser的事情,但使用动态字段而不是硬编码字段。

模型没有
f
属性,这就是模板变量的解析方式。如果您想使用
f
的值在
mod
上进行动态查找,您需要编写一个简单的模板过滤器。

模型没有
f
属性,这就是模板变量的解析方式。如果你想用
f
的值在
mod
上进行动态查找,你需要编写一个简单的模板过滤器。

sry我忘了那里有一行(第一个问题发布了!)。我重新编辑了我的模板,因为之前没有定义
f
f
是一个模型的字段名,所以我实际上想要类似于
{{mod.field\u name}}
,类似于我在endWell发布的链接中的答案,这根本不会改变答案。您仍然需要一个模板过滤器来动态解析
f
。sry我忘了在那里写一行(发布的第一个问题!)。我重新编辑了我的模板,因为之前没有定义
f
f
是一个模型的字段名,所以我实际上想要类似于
{{mod.field\u name}}
,类似于我在endWell发布的链接中的答案,这根本不会改变答案。您仍然需要一个模板过滤器来动态解析
f