我正在尝试创建一个基本模板来显示所选实例的字段值及其名称.可以将其视为表格格式中该实例值的标准输出,其中第一列中的字段名称(特别是如果在字段上指定了verbose_name)和第二列中该字段的值.
例如,假设我们有以下模型定义:
class Client(Model):
name = CharField(max_length=150)
email = EmailField(max_length=100, verbose_name="E-mail")
Run Code Online (Sandbox Code Playgroud)
我希望它在模板中输出如此(假设具有给定值的实例):
Field Name Field Value
---------- -----------
Name Wayne Koorts
E-mail waynes@email.com
Run Code Online (Sandbox Code Playgroud)
我想要实现的是能够将模型的实例传递给模板,并能够在模板中动态迭代它,如下所示:
<table>
{% for field in fields %}
<tr>
<td>{{ field.name }}</td>
<td>{{ field.value }}</td>
</tr>
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)
是否有一个整洁,"Django批准"的方式来做到这一点?这似乎是一项非常常见的任务,我需要经常为这个特定的项目做这件事.
我事先道歉,因为Django的思维方式对我来说仍然很陌生.我试图生成一个非常简单的页面,只是列出了使用Neo4j和Django(1.9.7)的简单密码查询的所有结果,我使用Python Neo4j驱动程序从Django访问数据库.但是,我越来越被卡住,已经到了,我只是一味地尝试新事物的地步,因此我想对我试图实现应该如何的基础知识一些指引/建议.
models.py
from django.views.generic.listimport ListView
from neo4j.v1 import GraphDatabase, basic_auth
from django.db import models
# Connect to DB
driver=GraphDatabase.driver("foo1",auth=basic_auth("foo2","foo3"))
session=driver.session()
class Stuff(models.Model):
query = "MATCH (t:Time) return t"
results=session.run(query)
# Sanity check -> This just shows that the database and query both work
for foo in results:
print foo
break
def __str__(self):
return results
Run Code Online (Sandbox Code Playgroud)
views.py
from django.views.generic.list import ListView
from .models import Stuff
# I assume that I should be using a ListView here (as I was trying to …Run Code Online (Sandbox Code Playgroud)