【发布时间】:2014-01-03 22:46:23
【问题描述】:
如何从 Django 模型声明中返回多个字段?
例如:我已经定义了:
class C_I(models.Model):
c_id = models.CharField('c_id', max_length=12)
name = models.CharField('name', max_length=100)
def __str__(self):
return '%s' % (self.name)
当在 views.py 函数中调用以返回时,我可以使用它
{{ c_index }}
{% for c in c_index %}
<div class='c-index-item' c-id=''>
<p>{{ c.name }}</p>
</div>
{% endfor %}
来自模板。这在我的views.py中被调用,如下所示:
c_index = C_I.objects.all()
t = get_template('index.html')
c = Context({'c_index': c_index})
html = t.render(c)
我如何也包括上面模型中定义的 c_id,以便我可以在我的模板中包括 {{c.name}} 和 {{c.c_id}}?当我删除 str 方法时,我似乎得到了所有结果,但是,它只返回模板中的空白条目,并且不允许我引用对象的各个组件。
【问题讨论】:
-
我试过 return '%s %s' % (self.name, self.c_id) 并且还 return '%s, %s' % (self.name, self.c_id)跨度>
-
您正在将
Calendar对象列表从视图函数传递给模板以进行渲染,因此对于个别实例,您应该能够访问Calendar模型定义的任何属性(无需定义__str__方法)。尝试将<p>标记的内容更改为{{ c.c_id }}, {{ c.name }}。访问视图时是否会导致任何错误? -
它不会导致错误,但它是空白的。此外,当我打印如上定义的 c_index 时,我只得到名称和 c_id,但如果我注释掉 str 方法,我得到一个日历项数组
-
将
c_index传递给模板的代码是什么?即,您能否将负责渲染模板的视图函数的代码添加到您的帖子中? -
我已将其添加到问题正文中
标签: python django django-templates