python - Django : Listing model field names and values in template

标签 python django django-models

<分区>

Possible Duplicate:
Django - Iterate over model instance field names and values in template

你好,

我试图在模板中列出字段和通用 Django 模型的相应值。但是我找不到一个相当普遍的问题的内置解决方案。我非常接近解决方案,但找不到出路。

view.py代码:

def showdetails(request, template):
    objects = newivr1_model.objects.all()
    fields = newivr1_model._meta.get_all_field_names()
    return render_to_response(template, {'fields': fields,'objects':objects},
        context_instance=RequestContext(request))

模板代码:

    <table>                                                                                                                                       
    {% for object in objects %}                                                 
        <tr>                                                                    
            {% for field in fields %}                                           
                <td>                                                            
            <!--    {{ object.field }} /*This line doesn't work*/ -->                                           
                </td>                                                           
            {% endfor %}                                                        
        </tr>                                                                   
    {% endfor %}                                                                
    </table>

我应该在注释模板行做什么才能获得 Object.field 的值?

我们也欢迎任何更好的 DRY 方法。

最佳答案

不幸的是,您不能在模板引擎中进行这样的查找。

您必须在 View 中处理它。

def showdetails(request, template):
    objects = newivr1_model.objects.all()

    for object in objects:
        object.fields = dict((field.name, field.value_to_string(object))
                                            for field in object._meta.fields)

   return render_to_response(template, { 'objects':objects },
                                    context_instance=RequestContext(request))

模板

{% for object in objects %}
    <tr>
    {% for field, value in object.fields.iteritems %}
        <td>{{ field }} : {{ value }}</td>
    {% endfor %}
    </tr>
{% endfor %}

关于python - Django : Listing model field names and values in template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5358800/

相关文章:

python - 将 pandas 对象提取到列表列表中并提取唯一值

HTML 未正确连接 CSS

django - 如何在Django allauth中禁用中间退出页面

python - 使用 Django 获取对象的孙子

python - 我的按钮并排位于主窗口中,但它们出现在中间。我怎样才能让他们更高?

python - 如何使用flask将数据传递到html页面?

python - Django 表单前缀与表单集

python - 使用 mysql-python 执行不同的查询

python - Django 模型中没有这样的列错误

python - Django - 多对多模型不返回任何内容